Pandas使用merge对dataframe进行合并时出现全为Nan的问题

使用merge进行对dataframe A和B合并时(将B合并到A),结果B的列全部为Nan,即出现了A、B键值没有匹配上的问题。而A、B看似键值是可以匹配的,这里使用的键值是字符串。查看资料和分析,这里有两种常见的情况:(代码中的Key值按需调整)

  • 键值数据类型不一致可能导致无法匹配。将键值数据类型准换成一致的(这里展示将object类型转换成string):

df1.Key = df1.Street.astype(pd.StringDtype()) # 将object类型转换成string
df2.Key = df2.Street.astype(pd.StringDtype()) # 将object类型转换成string

若同一转换为int:

df1.Key = df1.Street.astype(int) # 将object类型转换成string
  • 键值字符串的细节有问题。我遇到的问题属于这个问题,A的键值字符串的前后各有1个空格(好坑啊),将空格去除后即可成功匹配

for i in range(len(df1['Key'])):
    df1['Street'][i] = df1['Street'][i].strip() # 去除前后的空格

你可能感兴趣的:(python)