A听说过可以将yaml文件传递给python脚本以重命名pandas dataframe中的列的地方。但我不知道该怎么做,也不确定我是否发现了一些有用的东西。
例如,yaml:
mappings:
new_column_name1: [old_name_1, old_name_2, old_name_3, old_name_4],
new_columns_name2: [old_name_5, old_name_6, old_name_7, old_name_8]
df:
old_name1 old_name_6
1 4
3 6
6 31
是否可以使用这样的yaml文件重命名列(每个列名称显示在列表[old_name_1, old_name_2, old_name_3, old_name_4]
中重命名为new_column_name1
),最佳方式是什么?
我知道我没有提供我尝试过的任何代码,但我真的不知道。 此外,欢迎任何其他关于在多个数据帧中重命名大量列的良好实践的建议。
答案 0 :(得分:1)
你的例子似乎不是合法的YAML。相反,它应该是这样的:
mappings:
new_column_name1:
- old_name_1
- old_name_2
- old_name_3
- old_name_4
等等。
在任何情况下,如果您安装pyaml
,您可以使用以下内容:
from pyaml import yaml
d = yaml.load(open('foo.yaml', 'r'))['mappings']
cols = []
for c in df.columns:
cols.append(c)
for k, v in d.items():
if c in v:
cols[-1] = k
break
df.columns = cols