![](/img/trans.png)
[英]How to count number of rows per day in a MultiIndex'ed DataFrame?
[英]Count a number of rows in a dataframe per hour
我有一个 dataframe 有两列:timeStamp 和 eventMessage(字符串)。
timeStamp: eventMessage:
2020-10-19T10:07:56.7450775+02:00 transaction successful
2020-10-19T10:08:13.025169+02:00 transaction successful
我想最终得到一个 dataframe 有两列:小时和每小时的 numberOfEvents。
hour: numberOfEvents:
1 41
2 0
... ...
24 32
我已经尝试过df.resample('H', on='timeStamp', how='count')
,但我认为 how='count' 现在已弃用?
有没有一种新的快速 pandas 方法来做到这一点?
更新:感谢 Ami Tavory 的提示,df 现在看起来像这样:
timeStamp
10 792
11 792
14 594
15 198
16 198
我实际上不确定它是完全具有一列还是其他类型的 dataframe。 以及如何填写零事件的时间?
Miniupdate:它是 pandas.core.series.Series
将其转换为 df :
series = df.message.groupby(pd.to_datetime(df.timeStamp).dt.hour).count()
df2 = pd.DataFrame({'hour': series.index, 'counted': series.values})
现在我只需要弄清楚如何添加和填充从 1 到 24 的其他小时,这些小时没有零事件。
关于您的新问题(编辑后)。
将其转换为 df :
您可以更轻松地将其转换为
df = series.to_frame()
。
现在我只需要弄清楚如何添加和填充从 1 到 24 的其他小时,这些小时没有零事件。
new_index = Index(arange(0,23,1), name="hour")
df.set_index("hour").reindex(new_index).fillna(0)
按小时分组,并计算:
df.eventMessage.groupby(pd.to_datetime(df.timeStamp).dt.hour)).count()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.