【发布时间】:2022-01-07 15:39:29
【问题描述】:
我正在处理按多个地理级别(省和卫生区域)细分的时间序列数据。数据按年龄组进一步细分。我想根据需要先将数据汇总到卫生区域,然后再汇总到省。
样本数据:
df = pd.DataFrame({'Date':['1/1/2022','1/1/2022','1/1/2022','1/1/2022','1/1/2022','1/1/2022','1/1/2022','1/1/2022','1/1/2022'],
'province':[35,35,35,35,35,35,35,35,35,],'health region':[1,1,1,2,2,2,3,3,3],
'age group':[1,2,3,1,2,3,1,2,3],'cases':[6,1,9,7,9,0,4,2,2]})
聚合到健康区域级别时的期望输出:
df_hr = pd.DataFrame({'Date':['1/1/2022','1/1/2022','1/1/2022'],
'province':[35,35,35],
'health region':[1,2,3],'cases':[16,16,8]})
当我使用以下代码时:
df = df.groupby('health region').sum()
我失去了约会。
当我尝试时:
df = df.groupby(['health region','Date']).sum()
或
df = df.groupby(['health region',df['Date'].dt.date).sum()
我收到一个错误ValueError: mixed datetimes and integers in passed array
有没有简单的方法来做到这一点?我正在考虑使用循环按健康区域拆分数据,保存唯一日期,聚合,合并日期,然后将健康区域重新堆叠在一起。但如果有一种简单的方法可以做到这一点,我宁愿不这样做。
谢谢你, i.
【问题讨论】:
-
请不要分享图片,因为我们无法在我们的终端复制您的示例输入。相反,请通过与预期输出共享示例输入数据框来提供可重现的示例。
-
您是否将
df['Date']解析为日期时间?
标签: python pandas datetime pandas-groupby