如何用Pandas将每日犯罪事件记录聚合为月度统计数?
解决方法
你可以通过以下步骤实现按ID和年月统计犯罪事件数量:
第一步:确保日期列格式正确(若未转换的话):
虽然你提到Date列已是datetime64[ns]类型,但若需要转换,执行:df['Date'] = pd.to_datetime(df['Date'])第二步:提取年月信息
从Date列生成Month列,格式为YYYY-MM:df['Month'] = df['Date'].dt.strftime('%Y-%m')也可以用周期类型生成后转字符串,更适配时间序列操作:
df['Month'] = df['Date'].dt.to_period('M').astype(str)第三步:分组统计事件数
按ID和Month分组,统计每组的事件数量:result_df = df.groupby(['ID', 'Month'])['Crime'].count().reset_index(name='Count')用
size()替代count()也能得到相同结果:result_df = df.groupby(['ID', 'Month']).size().reset_index(name='Count')第四步:格式化计数(可选)
若要给数字添加千位分隔符,执行:result_df['Count'] = result_df['Count'].apply(lambda x: f"{x:,}")
最终的result_df就是你需要的格式,包含每个ID每月的事件统计数。
内容的提问来源于stack exchange,提问作者TheMaffGuy
相关产品推荐
相关产品推荐

