如何将一列的所有值转换为 Pandas DataFrame 中的单独列名
How to convert one column's all values to separate column name in DataFrame of Pandas
示例数据如下:
df = pd.DataFrame([(2011, 'a', 1.3), (2012, 'a', 1.4), (2013, 'a', 1.6), (2011, 'b', 0.7), (2012, 'b', 0.9), (2013, 'b', 1.2),], columns=['year', 'district', 'price'])
df.set_index(['year'], inplace=True)
df.head(n=10)
可以生成如下数据:
district price
year
2011 a 1.3
2012 a 1.4
2013 a 1.6
2011 b 0.7
2012 b 0.9
2013 b 1.2
我打算将DataFrame转换成如下:
a b
year
2011 1.3 0.7
2012 1.4 0.9
2013 1.6 1.2
谁能告诉我如何做到这一点?非常感谢!
使用枢轴
In[122]: df.reset_index().pivot('year','district','price')
Out[122]:
district a b
year
2011 1.3 0.7
2012 1.4 0.9
2013 1.6 1.2
示例数据如下:
df = pd.DataFrame([(2011, 'a', 1.3), (2012, 'a', 1.4), (2013, 'a', 1.6), (2011, 'b', 0.7), (2012, 'b', 0.9), (2013, 'b', 1.2),], columns=['year', 'district', 'price'])
df.set_index(['year'], inplace=True)
df.head(n=10)
可以生成如下数据:
district price
year
2011 a 1.3
2012 a 1.4
2013 a 1.6
2011 b 0.7
2012 b 0.9
2013 b 1.2
我打算将DataFrame转换成如下:
a b
year
2011 1.3 0.7
2012 1.4 0.9
2013 1.6 1.2
谁能告诉我如何做到这一点?非常感谢!
使用枢轴
In[122]: df.reset_index().pivot('year','district','price')
Out[122]:
district a b
year
2011 1.3 0.7
2012 1.4 0.9
2013 1.6 1.2