【发布时间】:2021-02-03 17:49:00
【问题描述】:
我有多个包含许多列的数据框,每个 df 都有不同的列名,我想标准化名称以便能够正确合并它们
我希望能够将列重命名为标准名称
我所做的是我创建了一个可能的列名选项列表,如果名称在此列表中,我会遍历 df 中的列,重命名为标准名称
res_list=['SEDP', 'SFXE', 'RPCHM', 'AT90'] # standard name is RLA5
cols = df_test.columns
for col in cols:
if df_test[col].isin(res_list):
df_test.rename({col:'RLA5'}, axis=1, inplace =True)
else:
pass
但这不起作用并给出以下错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
【问题讨论】:
-
我建议打印
df_test[col].isin(res_list)以查看它返回的内容。这应该让事情变得很清楚 -
谢谢,我在 res_list 中尝试了 col: 并且成功了,但是下面的解决方案要好得多,因为它更短且更容易实现