在pandas数据框中选择唯一的观察结果

时间:2013-10-31 23:43:13

标签: python pandas

我有一个pandas数据框,其中包含uniqueid列。我想基于此列从数据框中删除所有重复项,以便所有剩余的观察结果都是唯一的。

2 个答案:

答案 0 :(得分:12)

任何数据框(docs here)都有drop_duplicates()方法。您可以传递特定列作为参数。

df.drop_duplicates(subset='uniqueid', inplace=True)

答案 1 :(得分:9)

使用duplicated method

由于我们只关心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