微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何只保留pandas DataFrame中具有多个值的行?

我经常尝试进行以下操作,但有一个在熊猫中效率最高的即时解决方案:

我有以下示例pandas DataFrame,其中有两列,Name和Age:

import pandas as pd

data = [['Alex',10],['Bob',12],['Barbara',25], ['Bob',72], ['Clarke',13], ['Clarke',13], ['Destiny', 45]]

df = pd.DataFrame(data,columns=['Name','Age'], dtype=float)

print(df)
      Name   Age
0     Alex  10.0
1      Bob  12.0
2  Barbara  25.0
3      Bob  72.0
4   Clarke  13.0
5   Clarke  13.0
6  Destiny  45.0

我想删除名称中具有匹配值的所有行.在示例df中,有两个Bob值和两个Clarke值.因此,预期的输出是:

      Name   Age
0      Bob  12.0
1      Bob  72.0
2   Clarke  13.0
3   Clarke  13.0

我假设有一个重置索引.

一种选择是在列表中保留Name的所有唯一值,然后遍历数据帧以检查重复行.那将是非常低效的.

这个任务有内置函数吗?

解决方法:

使用重复

df[df.Name.duplicated(keep=False)]
     Name   Age
1     Bob  12.0
3     Bob  72.0
4  Clarke  13.0
5  Clarke  13.0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐