判断Dataframe A 中的列a, b, c中的行的值是否都在dataframe B中,如果不在,则将它存放到dataframe C中, 并举例实现。
时间: 2024-09-27 12:03:54 浏览: 29
对dataframe进行列相加,行相加的实例
5星 · 资源好评率100%
在Python的pandas库中,可以使用merge函数或者isin操作来判断DataFrame A中某一列或多列的值是否存在于DataFrame B中,并将不符合条件的数据插入到新的DataFrame C。这里是一个简单的例子:
```python
import pandas as pd
# 假设我们有三个DataFrame
df_A = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
df_B = pd.DataFrame({'a': [1, 2], 'b': [4, 5]})
df_C = pd.DataFrame(columns=['a', 'b', 'c']) # 新建一个空DataFrame用于存储结果
# 使用isin函数检查A中的每个元素是否都在B中
mask = df_A[['a', 'b', 'c']].apply(lambda x: x.isin(df_B), axis=1) # 沿着列方向应用is_in操作
# 将满足条件的行从A复制到C,反之则不复制
df_C = df_A[~mask]
# 现在df_C包含了所有在df_B中存在的(a, b, c)组合以及缺失的组合
```
在这个例子中,`mask`是一个布尔型的DataFrame,其中True表示对应的行在df_B中存在,False表示不存在。我们使用否定运算符(~)来选择出那些不在df_B中的行。
阅读全文