首页 > 解决方案 > 将列标题转换为顶行

问题描述

我需要将以下数据框的列标题转换为顶行。我已经做过试验,但它重命名不添加数据。我们可以在不转置数据帧的情况下做到这一点吗?

df1 = pd.DataFrame({'0': {0: None, 1: None, 2: None}, 'A': {0: 'X', 1: 'Y', 2: 'Z'}, 'B': {0: '1', 1: '0', 2: '13'}})
print (df1)
df1.columns = range(df1.shape[1])

预期输出:

在此处输入图像描述

标签: pythonpandas

解决方案


将列转换为DataFrame,转置为一行 DataFrame 并添加到原始数据:

df = df1.columns.to_frame().T.append(df1, ignore_index=True)
print (df)
      0  A   B
0     0  A   B
1  None  X   1
2  None  Y   0
3  None  Z  13

如有必要,将0列设置为None

df['0'] = None
print (df)
     0  A   B
0  None  A   B
1  None  X   1
2  None  Y   0
3  None  Z  13

推荐阅读