我正在尝试根据规则重命名 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/