我有来自 csv 的数据:
time, meas, meas2
15:10, 10, 0.3
15:22, 12, 0.4
15:30, 4
所以每一行可以包含不同数量的数据,小于或等于第一行的列数。
我正在编写一些简单的统计应用程序。但是对于一张图,我需要例如名称为 meas 的列中的数据总和。但是对于第二张图,我想按时间过滤这些数据。
是否有任何带有某种对象的准备获取类来根据需要利用从列或行获取数据?
或者我只需要将数据保留在行中并即时计算第一个图形的输入?
您正在寻找熊猫图书馆。文档可以在这里找到https://pandas.pydata.org/pandas-docs/stable/
你可以运行pip install pandas
安装它。
DataFrame 是您使用的基本 Pandas 对象。您可以像这样读取数据:
>>> import pandas as pd
>>> df = pd.read_csv(file_name)
>>> df
time meas meas2
0 15:10 10 0.3
1 15:22 12 0.4
2 15:30 4 NaN
>>> df['meas'].sum()
26
此时time
将是字符串值。要将它们转换为时间对象,您可以这样做(可能有更好的方法):
>>> df['time'] = [x.time() for x in pd.to_datetime(df['time'])]
现在按时过滤...假设您想要第 1 行之后的所有内容。
>>> time1 = df['time'][1]
>>> df['time'] > time1
0 False
1 False
2 True
Name: time, dtype: bool
您可以使用布尔表达式来过滤您的 DataFrame,如下所示:
>>> df[df['time'] > time0]
time meas meas2
2 15:30:00 4 NaN
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句