熊猫:根据值计数频率(直方图)

时间:2018-10-17 05:28:32

标签: python pandas

我有一个数据框,其中行是时间,列是日期,每个输入值是频率。如何在每天的30分钟内生成一个直方图显示,有多少个频率?

我目前使用df.groupby(pd.Grouper(freq='30Min')).count()。 但是,count()不接受输入值。

例如,数据框如下所示:

         03/12  03/13
1:00:01    2      3
1:00:02    3      4
1:31:03    1      2

当前输出为:

         03/12  03/13
1:00:00    2      2
1:30:00    1      1

所需的输出应为:

         03/12  03/13
1:00:00    5      7
1:30:00    1      2

正如@jezrael所述,我在数据集中对resample进行了基准测试。 结果如下:

In [270]: %timeit date_df.resample('30Min').count()
7.7 ms ± 10.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [271]: %timeit date_df.groupby(pd.Grouper(freq='30Min')).count()
7.99 ms ± 49.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

1 个答案:

答案 0 :(得分:0)

使用sum

df1 = df.groupby(pd.Grouper(freq='30Min')).sum()
#alternative solution
#df1 = df.resample('30Min').sum()
print (df1)
          03/12  03/13
01:00:01      5      7
01:30:01      1      2