我有正常的数据框。
id name age city date
1 Jane 43 London 2020-01-12
2 Jose 34 London 2020-01-12
3 Poul 53 Leed 2020-01-12
4 Mark 29 Manchester 2020-02-12
5 Zak 36 London 2020-02-12
6 Lin 75 Birmingham 2020-03-12
7 Word 55 York 2020-04-12
8 Gene 33 Leed 2020-04-12
我想转换为时间序列数据帧,你能教我怎么做吗?
在真实数据集中,有很多城市。我希望它自动生成表格。
我期望的时间序列是:
date London Leed Manchester Birmingham York
2020-01-12 2 1 0 0 0
2020-02-12 1 0 1 0 0
2020-03-12 0 0 0 1 0
2020-04-12 0 1 0 0 1
答案 0 :(得分:1)
您可以使用pivot_table
:
df.pivot_table(index='date', columns='city', aggfunc='size', fill_value=0)
city Birmingham Leed London Manchester York
date
2020-01-12 0 1 2 0 0
2020-02-12 0 0 1 1 0
2020-03-12 1 0 0 0 0
2020-04-12 0 1 0 0 1
您也可以使用 pd.crosstab(df.date, df.city)