我有来自csv的数据:
时间,测量,测量2
15:10,10,0.3
15:22,12:0.4
15:30,4
因此每行可以包含不同数量的数据,小于或等于第一行中的列数。
我正在写一些简单的统计应用程序。但是对于一个图,我需要例如列名为meas的数据总和。但是对于第二张图,我想按时过滤这些数据
是否存在任何具有某种对象的现成类,以根据需要使用从列或行获取数据?
或者我只需要将数据保存在行中并动态计算第一个图形的输入?
答案 0 :(得分:1)
您的问题有点令人困惑,但听起来像Pandas DataFrame会有所帮助。您可以直接读取csv文件。
import pandas as pd
df=pd.read_csv('your_csv_file.csv')
当然,您可能需要熟悉大熊猫才能使用它。
答案 1 :(得分:1)
您正在寻找熊猫图书馆。可在此处找到文档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