首页 > 解决方案 > 比较不同数据框的多列 | 熊猫

问题描述

我有两个具有相同列的数据框。我想生成一个新的 df ,其中数据框中的列之间的数据不同。像这样: 在此处输入图像描述 注意,我已经做了一些预处理,例如:

我不确定如何获取这些细粒度信息,我尝试遍历每一列并生成一个数据框。像这样:

for v in col_list:
    m_df = pd.merge(df1, df2, on = ['id',v], how = 'outer', indicator=True]).('_merge != "both"')

但是,我不确定如何将这些数据框组合成一个数据框。

该解决方案可以很好地解决我的问题,但我不知道如何根据需要对其进行转换: https ://stackoverflow.com/a/47112033/7987118

标签: pythonpandasdataframe

解决方案


做就是了df==df2

# module

import pandas as pd
import numpy as np

d=[['v1', 'v3', 'v56', 'sstr'],
['v2', 'v4', 'v34', 'sstr'],
['v3', 'v5', 'v12', ''],
['v4', 'v6', 'v-10', 'sstr'],
['v5', 'v7', 'v-32', 'sstr']]

d2=[['v1', 'v3', 'v56', 'sstr'],
['v234', 'v4adf', 'v34', 'sstr'],
['v3', 'v5asd', 'v12', 'sstr'],
['v4', 'v6', 'asdfasdf', 'sstr'],
['v5', 'v7', 'v-32', 'sstr']]


# datasets


df=pd.DataFrame(d,columns='a b c d'.split())
df2=pd.DataFrame(d2,columns='a b c d'.split())
print(df)
print(df2)

#check

print(df==df2)
#       a      b      c      d
#0   True   True   True   True
#1  False  False   True   True
#2   True  False   True  False
#3   True   True  False   True
#4   True   True   True   True

推荐阅读