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

标签 python pandas rename dataframe

我必须处理的数据有点乱。它的数据中有标题名称。如何从现有的 pandas 数据框中选择一行并将其(重命名为)列标题?

我想做这样的事情:

header = df[df['old_header_name1'] == 'new_header_name1']

df.columns = header

最佳答案

In [21]: df = pd.DataFrame([(1,2,3), ('foo','bar','baz'), (4,5,6)])

In [22]: df
Out[22]: 
     0    1    2
0    1    2    3
1  foo  bar  baz
2    4    5    6

将列标签设置为等于第 2 行(索引位置 1)中的值:

In [23]: df.columns = df.iloc[1]

如果索引具有唯一标签,您可以使用以下方法删除第二行:

In [24]: df.drop(df.index[1])
Out[24]: 
1 foo bar baz
0   1   2   3
2   4   5   6

如果索引不是唯一的,你可以使用:

In [133]: df.iloc[pd.RangeIndex(len(df)).drop(1)]
Out[133]: 
1 foo bar baz
0   1   2   3
2   4   5   6

使用 df.drop(df.index[1]) 删除与第二行具有相同标签的 all 行。因为非唯一索引会导致类似这样的绊脚石(或潜在错误),所以通常最好注意索引是唯一的(即使 Pandas 不需要它)。

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

相关文章:

python - 如何在字典中的数据帧迭代期间创建和填充列

python-3.x - 如何将列表作为 pandas 数据框中 groupby 函数的输入

PHP 函数重命名权限被拒绝

android - 重命名变量以使 XML id 更清晰

python - Python 中的参数传递

python - matplotlib - 具有不同基本指数和图例的辅助 Y 轴

python - 为什么遍历枚举比生成器快得多?

python - 添加两个已经在同一个列表中的词典

python - 列表 : How to set the dtype of items 的 Pandas 列

无需重构的 Android Studio 重命名