【问题标题】:filter csv data using python without pandas使用没有熊猫的python过滤csv数据
【发布时间】:2020-04-13 11:40:12
【问题描述】:

我想根据单位类型和转售价格的平均值(即房间 5)进行过滤,我正在尝试根据 5 间房间单位的转售价格值进行过滤。但是,当我尝试“打印” room5 时,它是空列表。我错过了哪一部分?

[![带有打印数据的代码][1]][1]

【问题讨论】:

  • 如果你再次问同样的问题,那么你至少应该把数据作为文本。或者创建最小的工作代码,以便我们可以复制它并运行以进行测试。
  • 抱歉,我需要将哪些数据作为文本放入以方便帮助?
  • 您在图像上拥有的数据。始终将代码、数据和错误消息作为文本而不是图像。 Python 无法从图像中读取信息。
  • 我已经在 pastebin 中添加了数据集 :) 感谢您的指导,以及上传文本格式的 spyder 导出。
  • 你真的用genfromtxt阅读它吗?所有代码看起来你只使用pandas

标签: python numpy csv


【解决方案1】:

获取房间

room5 = roomprice2013[ roomprice2013['flat_type'] == '5-room' ]
print(room5)

求和

room5_sum = roomprice2013[ roomprice2013['flat_type'] == '5-room' ]['price'].sum()
print(room5_sum)

工作示例。

我使用io.StringIO 模拟文件,这样每个人都可以复制和运行示例,而无需下载带有数据的文件。

import numpy as np
import io

s = io.StringIO('''quarter,town,flat_type,price
2013-Q2,Bedok,1-room,na
2013-Q2,Bedok,2-room,-
2013-Q2,Bedok,3-room,172000
2013-Q2,Bedok,4-room,224500
2013-Q2,Bedok,5-room,332000
2013-Q2,Bedok,Executive,420000''')

data = np.genfromtxt(s, skip_header=1, dtype=[('quarter','U10'),('town','U20'), ('flat_type','U10'), ('price','i8')], delimiter =',', missing_values=['na','-'],filling_values='0')

data_2013 = data[np.isin(data['quarter'], ['2013-Q1','2013-Q2','2013-Q3','2013-Q4'],['flat_type'])]
print(data_2013)

roomprice2013 = data_2013[['flat_type','price']]
print(roomprice2013)

room5 = roomprice2013[roomprice2013['flat_type'] == '5-room']
print(room5)

room5_sum = roomprice2013[roomprice2013['flat_type'] == '5-room']['price'].sum()
print(room5_sum)

编辑:内部roomprice2013['flat_type'] == '5-room' 仅提供带有True/False 的列表,您可以使用(甚至多次)只保留需要的行。

mask = (roomprice2013['flat_type'] == '5-room')  # it works without () but it is more readable with ()
print(mask) 
# [False False False False  True False]

room5 = roomprice2013[mask]
print(room5)

room5_sum = roomprice2013[mask]['price'].sum()
print(room5_sum)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多