我有一个pandas
数据框,其中包含uniqueid
列。我想基于此列从数据框中删除所有重复项,以便所有剩余的观察结果都是唯一的。
答案 0 :(得分:12)
任何数据框(docs here)都有drop_duplicates()
方法。您可以传递特定列作为参数。
df.drop_duplicates(subset='uniqueid', inplace=True)
答案 1 :(得分:9)
由于我们只关心uniqueid
(我的示例中为A
)是否重复,因此请选择该项并在该系列上调用duplicated
。然后使用~
翻转bools。
In [90]: df = pd.DataFrame({'A': ['a', 'b', 'b', 'c'], 'B': [1, 2, 3, 4]})
In [91]: df
Out[91]:
A B
0 a 1
1 b 2
2 b 3
3 c 4
In [92]: df['A'].duplicated()
Out[92]:
0 False
1 False
2 True
3 False
Name: A, dtype: bool
In [93]: df.loc[~df['A'].duplicated()]
Out[93]:
A B
0 a 1
1 b 2
3 c 4