Pandas 将列重塑为时间序列行

Pandas reshape columns to time-series rows

我有一个 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

我该怎么做?

其实,我找到了我需要的答案:

series = pd.pivot_table(data, values="Value", index="Partner", columns="Date")

这是一个替代解决方案:

来源 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