python pandas将数据框更改为透视列

时间:2017-03-28 19:57:38

标签: python pandas dataframe pivot

我的数据框如下所示:

Type Month  Value
A    1      0.29
A    2      0.90
A    3      0.44
A    4      0.43
B    1      0.29
B    2      0.50
B    3      0.14
B    4      0.07

我想将数据框更改为以下格式:

Type    A      B
1      0.29    0.29
2      0.90    0.50
3      0.44    0.14
4      0.43    0.07

这可能吗?

3 个答案:

答案 0 :(得分:3)

使用set_index + unstack

df.set_index(['Month', 'Type']).Value.unstack()

Type      A     B
Month            
1      0.29  0.29
2      0.90  0.50
3      0.44  0.14
4      0.43  0.07

匹配您的确切输出

df.set_index(['Month', 'Type']).Value.unstack().rename_axis(None)

Type      A     B
1      0.29  0.29
2      0.90  0.50
3      0.44  0.14
4      0.43  0.07

答案 1 :(得分:3)

枢轴解决方案:

In [70]: df.pivot(index='Month', columns='Type', values='Value')
Out[70]:
Type      A     B
Month
1      0.29  0.29
2      0.90  0.50
3      0.44  0.14
4      0.43  0.07

In [71]: df.pivot(index='Month', columns='Type', values='Value').rename_axis(None)
Out[71]:
Type     A     B
1     0.29  0.29
2     0.90  0.50
3     0.44  0.14
4     0.43  0.07

答案 2 :(得分:0)

你有一个长格式表的情况,你想要转换为宽格式。

这在pandas

中原生处理
df.pivot(index='Month', columns='Type', values='Value')