You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中移除列名的第二行(“UN member states”行)?

移除DataFrame列名的第二行,保留第一行作为唯一列名

下面分两种常见场景给出解决方案:

场景1:列名是双层索引(MultiIndex)

如果你的DataFrame列名是包含两行的MultiIndex(第二行全为"UN member states"),直接提取第一层级作为新列名即可:

import pandas as pd

# 示例:模拟双层列名的DataFrame
data = [["USA", 331, 9.8], ["China", 1412, 9.6]]
df = pd.DataFrame(data, columns=[['Country', 'Population(M)', 'Area(M km²)'], 
                                 ['UN member states', 'UN member states', 'UN member states']])

# 提取第一层级作为列名
df.columns = df.columns.get_level_values(0)

验证后你会发现列名已经只剩原来的第一行,第二行被完全移除。

场景2:误将数据行当作列名的一部分

如果是读取数据时参数设置错误,导致原本的第二行数据被混入列名(比如未正确指定header参数),可以按以下步骤修正:

# 示例:模拟错误读取后的DataFrame(列名是默认索引,第一行是实际列名,第二行是"UN member states")
data = [['Country', 'Population(M)', 'Area(M km²)'], 
        ['UN member states', 'UN member states', 'UN member states'],
        ["USA", 331, 9.8], ["China", 1412, 9.6]]
df = pd.DataFrame(data)

# 将第一行设为列名
df.columns = df.iloc[0]
# 删除包含"UN member states"的行
df = df.drop(df.index[0])
# 重置索引(可选,让索引从0开始)
df = df.reset_index(drop=True)

这样处理后,DataFrame的列名就只剩你需要的第一行,多余的"UN member states"行被删除。

内容的提问来源于stack exchange,提问作者K. Arkadius Wowczuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:35:17