我正在尝试计算数据帧中每个日期发生的事件数。我创建了一个新的数据框,其中的日期仅发生一次,如何计算和汇总每个日期发生的事件。
到目前为止,我还没有找到合适的方法。
这是我拥有的数据的示例:
date event
01/01/10 1
01/01/10 1
01/01/10 2
02/01/10 1
04/01/10 3
我希望得到这个结果
date event1 event2 event3
01/01/10 2 1 0
02/01/10 1 0 0
04/01/10 0 0 1
任何建议都会受到欢迎
答案 0 :(得分:3)
使用pd.crosstab
:
pd.crosstab(df['date'], df['event'])
输出:
event date 1 2 3
0 01/01/10 2 1 0
1 02/01/10 1 0 0
2 04/01/10 0 0 1
而且,我们可以像这样进行清理和重命名:
pd.crosstab(df['date'], df['event'])\
.add_prefix('event')\
.rename_axis(None, axis=1)\
.reset_index()
输出:
date event1 event2 event3
0 01/01/10 2 1 0
1 02/01/10 1 0 0
2 04/01/10 0 0 1