【发布时间】:2019-05-13 01:30:41
【问题描述】:
我经常尝试做以下操作,但是有一个直接的解决方案,在 pandas 中最有效:
我有以下示例 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
我想删除在Name 中具有匹配值的所有行。在示例df 中,有两个Bob 值和两个Clarke 值。因此,预期的输出将是:
Name Age
0 Bob 12.0
1 Bob 72.0
2 Clarke 13.0
3 Clarke 13.0
我假设有一个重置索引。
一种选择是将Name 的所有唯一值保留在一个列表中,然后遍历数据框以检查重复行。那将是非常低效的。
这个任务有内置函数吗?
【问题讨论】:
-
查看
pd.duplicated。 -
请关闭此问题;好尴尬
标签: python pandas filter subset