我正在做的事情就像:
df1['column1'] = df1.merge(df2,
how = 'left',
left_on = 'column2',
right_on = 'column3')['column4']
我不想保存合并,因为df2中有太多列,我不想手动删除它们。但问题是,这种操作导致CCD_ 1中存在大量NaN。我还没有弄清楚原因,但我发现在我做了以下更改后,就不会有任何NaN了。
df1['column1'] = df1.merge(df2,
how = 'left',
left_on = 'column2',
right_on = 'column3')['column4'].tolist()
有人知道这件事吗?
您使用的是左联接,其中整个左数据帧都将存在,并且只添加与右数据帧通用的数据帧。NAN
之所以存在,是因为键在两个表中都匹配,但该行中的其他列包含空值。
如果您只想在两个数据帧中使用公共/交叉行,则应在df1.merge()
函数中使用how = 'inner'
。