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。


回答:

  1. 单独筛选

df2[~df2.num.isin(df[df.name == 'a'].num)]

pandas怎么筛选两个不同长度列,返回不相同部分数据?

  1. 同时筛选

df.groupby('name')['num'].apply(lambda x: df2[~df2.num.isin(x)]).droplevel(1)

pandas怎么筛选两个不同长度列,返回不相同部分数据?

以上是 pandas怎么筛选两个不同长度列,返回不相同部分数据? 的全部内容, 来源链接: utcz.com/p/937811.html

回到顶部