我正在尝试合并两个数据帧,以查找导致合并错误的值。大多数列在两个数据帧中并不通用。
以下内容突出显示哪些行具有“ NaN”值,然后如何查找导致合并问题的列?谢谢
df3 = pd.merge(df1, df2, how='outer')
df4 = (df3[df3.isnull().any(axis=1)])
答案 0 :(得分:0)
很难从问题中分辨出来,但问题表明pd.merge(df1, df2, on=None, how='outer')
如果on
为None且未在索引上合并,则默认为两个DataFrame中列的交集。
这意味着两个DataFrame
中的列交点最好具有相同的类型。否则,将发生错误,指示类型问题。
ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat
假定类型冲突影响外部联接,则应检查相交列类型之间的差异。
dtypes_diff = pd.concat([df1.dtypes,df2.dtypes]).drop_duplicates(keep=False)