Pandas:将行索引更改为列索引。或反之亦然。

3
import pandas as pd
df = pd.DataFrame(data={'start':[1,2,3],'zone':['a','b','c']}); 
df['end']=[4,5,6]
df.set_index('zone',drop=True,inplace=True,append=False)
print(df)

      start  end
zone            
a         1    4
b         2    5
c         3    6

我希望将这个数据框进行修改,变成如下形式:
zone  a              b            c
      start  end     start  end   start  end
      1        4     2      5     3      6

通过将行索引改为列索引。我需要这样做是因为我想稍后对数据框进行融合,这样它就会变成长表格。但我不知道如何将行索引与列索引一起融合。但是得到这个输出会使我可以简单地使用:

pd.melt(df)

为了得到长表格。 如果有一种方法可以将列索引更改为行索引,那么我就可以跳过将行索引更改为列索引的步骤,直接得到长表格。 请帮忙。
2个回答

4

使用stackto_frame和转置的T来尝试这个:

df.stack().to_frame().T

输出:

zone     a         b         c    
     start end start end start end
0        1   4     2   5     3   6

2
从数组操作和多索引构建重建。
pd.DataFrame(
    df.values.reshape(1, -1),
    columns=pd.MultiIndex.from_product([df.index, df.columns])
)

      a         b         c    
  start end start end start end
0     1   4     2   5     3   6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接