我正在开发一个小型工具,该工具可以对数据框进行一些计算,让我们说一下这样的话:
df['column_c'] = df['column_a'] + df['column_b']
为此,数据框需要具有列“ column_a”和“ column_b”。如果列的名称在导入文件(csv或xlsx)中稍有不同,我希望此代码能够工作。例如“ columnA”,“ Col_a”等)。
最简单的方法是重命名导入文件中的列,但是让我们假设这是不可能的。因此我想做些这样的思考:
if column name is in list ['columnA', 'Col_A', 'col_a', 'a'... ] rename it to 'column_a'
我正在考虑使用一个可能包含列名的字典,当列名在此字典中时,它将被重命名为“ column_a”。另外一个复杂的事实是,列可以以任意顺序排列。
一个人如何解决这个问题?
最佳答案
只是
for index, column_name in enumerate(df.columns):
if column_name in ['columnA', 'Col_A', 'col_a' ]:
df.columns[index] = 'column_a'
带字典
dico = {'column_a':['columnA', 'Col_A', 'col_a' ], 'column_b':['columnB', 'Col_B', 'col_b' ]}
for index, column_name in enumerate(df.columns):
for name, ex_names in dico:
if column_name in ex_names:
df.columns[index] = name
关于python - 重命名 Pandas 中格式多样的列标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50177359/