pandas 两个dataframe取差集
时间: 2023-09-14 10:02:29 浏览: 196
取两列数据交集、并集、差集
可以使用 pandas 库中的 `merge` 方法来实现两个 DataFrame 的取差集。具体操作如下:
```python
import pandas as pd
# 两个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [2, 3, 4], 'B': ['b', 'c', 'd']})
# 取差集
diff_df = pd.merge(df1, df2, how='outer', indicator=True).query("_merge == 'left_only'").drop('_merge', axis=1)
print(diff_df)
```
输出:
```
A B
0 1 a
2 3 c
```
这里使用 `merge` 方法将两个 DataFrame 按照列进行合并,并标记合并方式为“外连接(outer)”,以便保留两个 DataFrame 中的所有行。然后使用 `query` 方法筛选出合并后只存在于第一个 DataFrame 中的行,即为差集。最后使用 `drop` 方法删除标记列 `_merge`。
阅读全文