将列标题转换为 Pandas 数据框中的第一行,将行标题转换为第一列

Rus*_*Rai 1 python indexing dataframe pandas

我有一个看起来像这样的数据框:

123  345   456   789
987  876   765   543
...  ...   ...   ...
Run Code Online (Sandbox Code Playgroud)

但是当它们实际上是值时,顶行和最左边的列被当作标题。无论如何将它们向下/向右移动并用默认索引替换它们?

编辑:我已经考虑过设置 header=None,但这不是一个选项。数据框是通过 read_excel 创建的,但程序的许多部分已经使用 .loc 等并直接引用要删除的标题名称。

Nag*_*ran 5

对于您的解决方案,您可以移动它。但是如果你从任何 csv 文件中读取数据,在读取时你可以考虑不带 header(header = None)

    345 456 789
123         
987 876 765 543

df.reset_index().T.reset_index().T
Run Code Online (Sandbox Code Playgroud)

出去:

         0  1   2   3
index   123 345 456 789
0       987 876 765 543


pd.read_csv('data.csv',header=None)
Run Code Online (Sandbox Code Playgroud)

出去:

    0   1   2   3
0   123 345 456 789
1   987 876 765 543
Run Code Online (Sandbox Code Playgroud)