可以使用pandas库中的isin()和 ~ 操作符来实现。
首先,将两个数据帧的关注列合并成一个新的数据帧,并通过isin()方法找到第一个数据帧中存在但第二个数据帧中不存在的值。例如,假设我们要比较两个数据帧df1和df2的‘A’列,代码如下:
diff_df1 = df1[~df1['A'].isin(df2['A'])]
接着,通过 ~ 操作符取反,找到第二个数据帧中存在但第一个数据帧中不存在的值。代码如下:
diff_df2 = df2[~df2['A'].isin(df1['A'])]
最后,可以分别输出两个不同的数据帧:
print('Values in df1 but not in df2:', diff_df1) print('Values in df2 but not in df1:', diff_df2)
完整代码示例如下:
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}) df2 = pd.DataFrame({'A': [2, 3, 4, 5], 'B': [6, 7, 8, 9]})
diff_df1 = df1[~df1['A'].isin(df2['A'])] print('Values in df1 but not in df2:', diff_df1)
diff_df2 = df2[~df2['A'].isin(df1['A'])] print('Values in df2 but not in df1:', diff_df2)