python - Pandas 中基于规则的列重命名

标签 python excel pandas

我正在尝试根据规则重命名 Pandas 列。它们最初是 Excel 文档中的合并单元格。我已将该文件导入 pandas,现在有几列未命名。我想根据它们左边的列重命名它们。例如。

'ID' '名称' '伏特' '未命名:4' '上游' '未命名:6' '未命名:7' '未命名:8'

我想以自动方式将 4 重命名为伏特,将 6 7 和 8 重命名为上游,以便所有未命名的列将最后一个标题置于其左侧。这可能吗?

提前致谢。

最佳答案

请遵循埃德的建议,不要欺骗名字。也就是说,这将为您提供一种可能的方法来处理您的问题,您可以进一步调整:

s = df.columns.to_series()

s
Out[27]: 
ID                  ID
Name              Name
Volts            Volts
Unnamed:4    Unnamed:4
Upstream      Upstream
Unnamed:6    Unnamed:6
Unnamed:7    Unnamed:7
Unnamed:8    Unnamed:8
dtype: object

s[df.columns.str.contains('Unnamed')] = np.nan

s.ffill()
Out[29]: 
ID                 ID
Name             Name
Volts           Volts
Unnamed:4       Volts
Upstream     Upstream
Unnamed:6    Upstream
Unnamed:7    Upstream
Unnamed:8    Upstream
dtype: object

df.columns = s.ffill()

df
Out[31]: 
Empty DataFrame
Columns: [ID, Name, Volts, Volts, Upstream, Upstream, Upstream, Upstream]
Index: []

关于python - Pandas 中基于规则的列重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051299/

相关文章:

python - 从 1 个 Dataframe 更新一列,其中其他 Dataframe 具有相同的键

python - pip 将 google-api-python-client 安装到 PC - 访问被拒绝

python - Python中子列表不均匀时消除重复的子列表

excel - 如何在输入过程中覆盖文本框中的建议文本?

mysql - 从包含超过 300 列的 csv、txt 或 xls 文件创建 MySQL 表

excel - 查找结果不一致

python - install_requires 基于 python 版本

python - 将 CSV 转换为 JSON。如何保持具有相同索引的值?

python - Pandas DataFrame 合并选择更高的值

pandas - 未实现错误 : data_source ='iex' is not implemented