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