将DataFrame的列标题转换为行 - Pandas

15

有一个包含数值的df

df:

165  156  1    test    greater 56gsa
-------------------------------------
spin 201  2    normal  lesser  12asgs
pine 202  3    fast    greater 5sasgs

所需的输出:

0     1   2     3        4       5
-------------------------------------
165  156  1    test    greater 56gsa
spin 201  2    normal  lesser  12asgs
pine 202  3    fast    greater 5sasgs
3个回答

17
如果DataFrame是从文件创建的,那么header=None参数会对你有所帮助。
df = pd.read_csv(file, header=None)

如果不是的话,则将列转换为一行 DataFrame,并使用DataFrame.append将其添加到原始数据中:

df = df.columns.to_frame().T.append(df, ignore_index=True)
df.columns = range(len(df.columns))
print (df)
      0    1  2       3        4       5
0   165  156  1    test  greater   56gsa
1  spin  201  2  normal   lesser  12asgs
2  pine  202  3    fast  greater  5sasgs

12

尝试使用reset_index

print(df.T.reset_index().T)

重置和删除原始列:

print(df.T.reset_index(drop=True).T)

1
很好。也许你想在末尾添加.reset_index(drop=True)来重置新索引? - luigigi

1
尝试下面的代码:
df.loc[len(df)] = df.columns
df.columns = range(len(df.columns))
df

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