首页 > 解决方案 > 熊猫:按一天中的时间对数据框进行分组并在一个图形上绘制图

问题描述

我已经看到了几十个类似的问题,但我无法做出我想要的最终效果。

数据框结构中几乎每分钟都进行一次测量(25k+ 行):

                                     some_val
...
2020-02-22 00:00:00                  1.1
2020-02-22 00:01:01                  1.4
2020-02-22 00:02:01                  1.5
...
2020-02-23 00:00:05                  1.7
2020-02-23 00:01:05                  1.6
2020-02-23 00:02:06                  1.6
...
2020-02-24 00:00:02                  1.4
2020-02-24 00:01:03                  1.8
2020-02-24 00:02:03                  1.3

我想按一天中的每一分钟对该数据框进行分组 - 所以第一组(一天中的时间 00:00)应该由 [1.1, 1.7, 1.4] 等组成。

然后我想通过将其绘制在 1 个图中来查看一些趋势,其中:

现在我不想count()mean()任何东西。只是简单的分组,在 1 个图形上绘制所有内容并将其保存到文件中。

当我阅读时,我应该能够使用 pandasgroupbyresamplematplotlib.pyplot但不知何故我无法做到这一点。

提前致谢。

标签: pythonpython-3.xpandastime-seriespandas-groupby

解决方案


解决方案代码

import pandas as pd

data={'Date':['2020-02-22T00:00:00.000000000', '2020-02-22T00:01:00.000000000',
           '2020-02-22T00:02:00.000000000'],'some_val':[1.1, 1.4, 1.5]}
    df=pd.DataFrame.from_dict(data)

绘图

import matplotlib .pyplot as plt
df['Date']=pd.to_datetime(df['Date'])#Converting Date to datetime 
df.set_index(df['Date'], inplace=True)#Setting Date as index
df['x']= df.index.minute #Extracting minutes
df.plot(x='x', y='some_val')

推荐阅读