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

发布于 2022-09-12 02:10:50 字数 335 浏览 13 评论 0

假设如下数据:

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。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

贱人配狗天长地久 2022-09-19 02:10:50
  1. 单独筛选
df2[~df2.num.isin(df[df.name == 'a'].num)]

image.png

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

image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文