我经常尝试进行以下操作,但有一个在熊猫中效率最高的即时解决方案:
我有以下示例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] 举报,一经查实,本站将立刻删除。