首页 > 解决方案 > 使用 Pandas 绘制和处理日期/时间数据

问题描述

目前,我正在从事一个项目,并希望每天从记录器中绘制数据。书面输出的格式是 .csv 文件,并在列中包含日期/时间戳,例如:2018-10-15 10:00。在其他列中,只有浮点格式的数据。我会在 00:00 到 23:50 的 10 分钟间隔内自动获得书面印章。

我希望使用 groupby() 分析数据并按天*分组,并进一步计算当天的平均值和偏差。我想将几年的平均值和 std_deviation 数据绘制为散点图或折线图。主要滴答声是几年或几个月,而天是次要滴答声。

每天,我想比较某个月份内平均值的变化,并以小时为主要刻度,每 10 分钟间隔为次要刻度,绘制整个时间间隔。如果可能的话,我希望能够把它放在一个 for 循环中。

老实说,我尝试了很多不同的可能性,但我无法仅靠一种可能性来实现所有目标。如果可以的话,我会尽量不使用 set_index() 作为日期/时间列,这样更容易应用组。为了方便起见,我正在使用 Pandas 模块来完成我的整个分析。

我会很高兴得到任何指导。

非常感谢你!!!!!

标签: pythonpandasdatetimeplot

解决方案


只是几个指针:

使用 pd.read_csv ( https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html ) 读取 csv 时,您可以指定哪些列包含日期/时间:

df = pd.read_csv('myfile.csv', parse_dates=['date'])

然后您可以使用.dt访问日期/时间特定功能,请参阅: https ://pandas.pydata.org/pandas-docs/stable/api.html#datetimelike-properties

因此,您可以添加仅包含天数的列,例如:

df['day'] = df['date'].dt.dayofyear

然后你可以按这个新列分组..


推荐阅读