繁体   English   中英

每小时计算 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM