重命名列后合并Pandas DataFrame报KeyError: 'code',求解决方案
解决合并DataFrame时的KeyError: 'code'问题
问题原因
你只将df_small的列名转为小写,但df_big中用于合并的列名仍为大写(比如CODE),此时用on=['code']合并会因为df_big中不存在code列而报错。另外也需先确认df_small转小写后确实存在code列。
排查步骤
先打印两个DataFrame的列名,确认列名实际情况:
print("df_small转小写后的列名:", df_small.columns) print("df_big的列名:", df_big.columns)
解决方案
方案1:统一两个DataFrame的列名格式
把df_big的列名也转为小写,再用统一列名合并:
df_small = df_small.rename(columns=str.lower) df_big = df_big.rename(columns=str.lower) common = df_small.merge(df_big, on=['code'])
方案2:合并时指定左右各自的列名
无需统一列名,直接通过left_on和right_on分别指定两边的合并列:
df_small = df_small.rename(columns=str.lower) common = df_small.merge(df_big, left_on='code', right_on='CODE')
内容的提问来源于stack exchange,提问作者tailsrockc
相关产品推荐
相关产品推荐

