pandas怎么筛选两个不同长度列,返回不相同部分数据?
假设如下数据:
df = pd.DataFrame({'name':['a','a','b','b','b','b'],'num':[1,3,1,2,3,4]}) name num
0 a 1
1 a 3
2 b 1
3 b 2
4 b 3
5 b 4
df2 = pd.DataFrame({'num':[1,2,3,4,5]})
num
0 1
1 2
2 3
3 4
4 5
比较 df1 和 df2 ,返回不相同的部分 a 对应的 2、4、5,b 对应的 5。
回答:
- 单独筛选
df2[~df2.num.isin(df[df.name == 'a'].num)]
- 同时筛选
df.groupby('name')['num'].apply(lambda x: df2[~df2.num.isin(x)]).droplevel(1)
以上是 pandas怎么筛选两个不同长度列,返回不相同部分数据? 的全部内容, 来源链接: utcz.com/p/937811.html