我有一个pandas数据帧(不幸的是重复...)
Date Partner Value
2017-02-01 Partner1 150
2017-03-01 Partner1 170
2017-02-01 Partner2 160
2017-03-01 Partner2 185
2017-02-01 Partner1 40
2017-03-01 Partner1 90
我希望合作伙伴重塑一下,看起来像这样:
Partner 2017-02-01 2017-03-01
Partner1 150 170
Partner2 160 185
Partner1 40 90
我该怎么做?
答案 0 :(得分:3)
实际上,我找到了我需要的答案:
series = pd.pivot_table(data, values="Value", index="Partner", columns="Date")
答案 1 :(得分:2)
这是另一种解决方案:
来源DF:
In [143]: df
Out[143]:
Date Partner Value
0 2017-02-01 Partner1 150
1 2017-02-01 Partner1 199 # NOTE: duplicated `Date` & `Partner`
2 2017-03-01 Partner1 170
3 2017-02-01 Partner2 160
4 2017-03-01 Partner2 185
解决方案:
In [144]: df.groupby(['Partner','Date'])['Value'].mean().unstack().rename_axis(None).rename_axis(None, 1)
Out[144]:
2017-02-01 2017-03-01
Partner1 174.5 170.0
Partner2 160.0 185.0