Pandas DataFrame中按日期列出的值的频率

时间:2018-04-17 21:06:24

标签: python pandas

我在Pandas中有一个看起来像这样的DataFrame。 date是dtype datetime64的索引。

                                  keyword id
date
2017-03-31 21:22:33+00:00             cat  0
2017-07-07 11:28:36+00:00             dog  1
2017-03-31 01:18:50+00:00             cat  2
2017-03-31 21:03:39+00:00             cat  3
2017-08-23 13:26:43+00:00        elephant  4

我想要一个按天计算关键字的结果:

2017-03-31 cat 3
2017-07-07 dog 1
2017-08-23 elephant 1

我是熊猫新手,所以我正在学习。我尝试过这样的事情:

df.resample('D').keyword.value_counts()

返回:

ValueError: operands could not be broadcast together with shape ...

显然,我需要使用resample因为日期是索引。我不确定如何继续。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:2)

get_level_valuesdate一起使用(从日期时间格式获取日期部分)

df.groupby([df.index.get_level_values(0).date,df.keyword]).size()
Out[867]: 
            keyword 
2017-03-31  cat         3
2017-07-07  dog         1
2017-08-23  elephant    1
dtype: int64