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

标签 python pandas dataframe indexing

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

123  345   456   789
987  876   765   543
...  ...   ...   ...

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

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

最佳答案

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

    345 456 789
123         
987 876 765 543

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

输出:

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


pd.read_csv('data.csv',header=None)

输出:

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

关于python - 将列标题转换为第一行,将行标题转换为 Pandas 数据框中的第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53282075/

相关文章:

python - 比较 Python 中的两个生成器

python - 根据今天的日期创建列名称?

r - 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

python - Pandas 根据条件合并具有多列的数据框

python - 为什么django使用逗号作为小数点分隔符

python - 以下 Python 脚本中的缩进错误

python - 解析列中包含列表的 CSV

python - Pandas - 彼此接近的桶装事件

python - 使用 pandas 保存大型 Excel 文件时出错

python - 如何根据行值获取 Pandas 中的列名?