【发布时间】:2019-09-05 23:52:04
【问题描述】:
我有一个 pandas 数据框,它在各个层级都有每月计数。它是长格式,我想转换为宽格式,每个聚合级别都有列。
格式如下:
date | country | state | county | population
01-01| cc1 | s1 | c1 | 5
01-01| cc1 | s1 | c2 | 4
01-01| cc1 | s2 | c1 | 10
01-01| cc1 | s2 | c2 | 11
02-01| cc1 | s1 | c1 | 6
02-01| cc1 | s1 | c2 | 5
02-01| cc1 | s2 | c1 | 11
02-01| cc1 | s2 | c2 | 12
.
.
现在我想把它转换成以下格式:
date | country_pop| s1_pop | s2_pop| .. | s1_c1_pop | s1_c2_pop| s2_c1_pop | s2_c2_pop|..
01-01| 30 | 9 | 21 | ...| 5 | 4 | 10 | 11 |..
02-01| 34 | 11 | 23 | ...| 6 | 5 | 11 | 12 |..
.
.
状态总数为,4,s1....s4。
每个州的县都可以标记为 c1.... c10(有些州可能更少,我希望这些列为零。)
我想获得每个聚合级别的时间序列,按日期排序。我怎么得到这个?
【问题讨论】:
-
看起来像
pivot_table/groupby问题然后合并。 -
您的意思是:在每个聚合级别创建一个数据透视表,其中包含日期 count_for_that_level。然后按日期合并所有这些单独的数据透视表?这似乎很笨重,有没有更清洁的方法来做到这一点?
标签: python pandas time-series hierarchy