python – 在Pandas中选择两个DataFrame之间的唯一行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在Pandas中选择两个DataFrame之间的唯一行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1765字,纯文字阅读大概需要3分钟。
内容图文
![python – 在Pandas中选择两个DataFrame之间的唯一行](/upload/InfoBanner/zyjiaocheng/724/ca8507bdf3624aa1949f0ce2c0f7a992.jpg)
我有两个不等维的数据框A和B.我想创建一个数据框C,使它只包含A和B之间唯一的行.我试图遵循这个解决方案(excluding rows from a pandas dataframe based on column value and not index value),但无法让它工作.
这是一个例子:
假设这是DF_A:
Star_ID Loc_ID pmRA pmDE Field Jmag Hmag
2M00000032+5737103 4264 0.000000 0.000000 N7789 10.905 10.635
2M00000068+5710233 4264 8.000000 -18.000000 N7789 10.664 10.132
2M00000222+5625359 4264 0.000000 0.000000 N7789 11.982 11.433
2M00000818+5634264 4264 0.000000 0.000000 N7789 12.501 11.892
2M00001242+5524391 4264 0.000000 -4.000000 N7789 12.091 11.482
这是DF_B:
2M00000032+5737103
2M00000068+5710233
2M00001242+5524391
因此,前两个和最后一个Star_ID在DF_A和DF_B之间是通用的.我想创建DF_C,以便:
DF_C:
Star_ID Loc_ID pmRA pmDE Field Jmag Hmag
2M00000222+5625359 4264 0.000000 0.000000 N7789 11.982 11.433
2M00000818+5634264 4264 0.000000 0.000000 N7789 12.501 11.892
解决方法:
这对我有用:
In [7]:
df1[~df1.Star_ID.isin(df2.Star_ID)]
Out[7]:
Star_ID Loc_ID pmRA pmDE Field Jmag Hmag
2 2M00000222+5625359 4264 0 0 N7789 11.982 11.433
3 2M00000818+5634264 4264 0 0 N7789 12.501 11.892
[2 rows x 7 columns]
所以我们在这里做的是创建一个布尔掩码,我们询问两个数据帧中Star_ID值的位置,但是使用?不是实际上否定它的条件.你链接的那个几乎是一样的但我想你可能不理解语法?
编辑
为了获得仅在df1中的值和仅在df2中的值,您可以执行此操作
unique_vals = df1[~df1.Star_ID.isin(df2.Star_ID)].append(df2[~df2.Star_ID.isin(df1.Star_ID)], ignore_index=True)
进一步编辑
所以问题是csv有前导空格,这导致所有值在两个数据集中都是唯一的,要纠正这个,你需要这样做:
df1.Apogee_ID = df1.Apogee_ID.str.lstrip()
内容总结
以上是互联网集市为您收集整理的python – 在Pandas中选择两个DataFrame之间的唯一行全部内容,希望文章能够帮你解决python – 在Pandas中选择两个DataFrame之间的唯一行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。