Python pandas中少数列(不是整个数据帧)的转置(与get_假人相反)
我需要对几个列(不是整个数据帧)进行转置 所需的输出如下:Python pandas中少数列(不是整个数据帧)的转置(与get_假人相反),python,pandas,transpose,Python,Pandas,Transpose,我需要对几个列(不是整个数据帧)进行转置 所需的输出如下: Keywords Brands IX LS Glass Brand1 2 120 Glass Brand2 5 78 Glass Brand3 NaN 100 Wood . . . 它应该与“获取假人”相反,但到目前为止还没有找到解决方案。使用: 结果: print
Keywords Brands IX LS
Glass Brand1 2 120
Glass Brand2 5 78
Glass Brand3 NaN 100
Wood
.
.
.
它应该与“获取假人”相反,但到目前为止还没有找到解决方案。使用:
结果:
print(df1)
Keywords Brands IX LS
0 Glass Brand1 2.0 120
1 Glass Brand2 5.0 78
2 Glass Brand3 NaN 100
3 Wood Brand1 10.0 400
4 Wood Brand2 25.0 700
5 Wood Brand3 10.0 250
你可以做:
df = df.set_index(['Keywords'])
df.columns = df.columns.str.split("_", expand=True)
df.stack(level=1).reset_index()
您可以使用
df.columns.str.split(“\ux”,expand=True)
。它创建了一个多索引
print(df1)
Keywords Brands IX LS
0 Glass Brand1 2.0 120
1 Glass Brand2 5.0 78
2 Glass Brand3 NaN 100
3 Wood Brand1 10.0 400
4 Wood Brand2 25.0 700
5 Wood Brand3 10.0 250
df = df.set_index(['Keywords'])
df.columns = df.columns.str.split("_", expand=True)
df.stack(level=1).reset_index()
Keywords level_1 IX LS
0 Glass Brand1 2 78.0
1 Glass Brand2 5 100.0
2 Glass Brand3 120 NaN
3 Wood Brand1 10 400.0
4 Wood Brand2 25 700.0
5 Wood Brand3 10 250.0