我正在尝试弄清楚如何在Python中透视这个表。
example = {"ABC":{'2020-09':1.33,'2020-10':0.75,'2020-11':1.55},
"DEF":{'2020-09':1.22,'2020-10':1.75,'2020-11':2.73}}
df = pd.DataFrame(example)
df我希望它像这样旋转:
example = {"Date":['2020-09','2020-10','2020-11','2020-09','2020-10','2020-11'],
"Col1":['ABC','ABC','ABC','DEF','DEF','DEF'],
"Col2":[1.33,0.75,1.55,1.22,1.75,2.73]}
df = pd.DataFrame(example)
df我创建这两个字典只是为了说明这里的问题。我有一个更大的代码来生成第一个数据帧。
你能帮我把第一个数据帧转换成第二个吗?
谢谢
问候
发布于 2021-01-01 10:24:40
最简单的版本可能是
df.unstack()这为您提供了多索引的结果:
ABC 2020-09 1.33
2020-10 0.75
2020-11 1.55
DEF 2020-09 1.22
2020-10 1.75
2020-11 2.73
dtype: float64如果你不想要多索引,你可以这样做
df.unstack().reset_index()
level_0 level_1 0
0 ABC 2020-09 1.33
1 ABC 2020-10 0.75
2 ABC 2020-11 1.55
3 DEF 2020-09 1.22
4 DEF 2020-10 1.75
5 DEF 2020-11 2.73或者,
df.reset_index().melt(id_vars='index', var_name='key', value_name='value')
index key value
0 2020-09 ABC 1.33
1 2020-10 ABC 0.75
2 2020-11 ABC 1.55
3 2020-09 DEF 1.22
4 2020-10 DEF 1.75
5 2020-11 DEF 2.73https://stackoverflow.com/questions/65526864
复制相似问题