【问题标题】:Selecting unique observations in a pandas data frame在 pandas 数据框中选择独特的观察值
【发布时间】:2013-10-31 23:43:12
【问题描述】:

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

【问题讨论】:

  • 假设uniqueid列有两行具有相同值。删除哪一行重要吗?
  • 不,在这种情况下没关系。

标签: python pandas


【解决方案1】:

对于任何数据框 (docs here),还有 drop_duplicates() 方法。您可以将要删除的特定列作为参数传递。

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

【讨论】:

  • 完美的方式
【解决方案2】:

使用duplicated method

由于我们只关心uniqueid(在我的示例中为A)是否重复,所以选择它并在该系列上调用duplicated。然后使用~ 翻转布尔值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多