【问题标题】:how could i delete rows with repeating/duplicate index from dataframe [duplicate]我如何从数据框中删除具有重复/重复索引的行[重复]
【发布时间】:2017-01-29 15:02:02
【问题描述】:

我有一个数据框

>>> df
zeroa  zerob zeroc zerod zeroe zero
FSi                                     
1       10    100     a    ok   NaN   ok
1       11    110        temp   NaN  NaN
2       12    120     c  temp   NaN  NaN
3      NaN    NaN   NaN   NaN    ok  NaN

我只想保留唯一索引,因为索引 1 重复我希望删除它的第二个实例,我该怎么做?我希望我的结果为

>>> df
     zeroa  zerob zeroc zerod zeroe zero
FSi                                     
1       10    100     a    ok   NaN   ok
2       12    120     c  temp   NaN  NaN
3      NaN    NaN   NaN   NaN    ok  NaN

【问题讨论】:

  • 虽然这个问题是重复的,但接受的答案不是 IMO 的最佳答案,所以这里有一个指向 best answer 的链接。

标签: python pandas dataframe


【解决方案1】:

不重置索引:

df[~df.index.duplicated()]

【讨论】:

  • 很好,我更喜欢你的解决方案,而不是我的 :)
  • 我先尝试了reset_index 路线,但谷歌救了我;)
  • 感谢它的工作! :)
【解决方案2】:

好的,这样应该会有所帮助:

df = df.reset_index().drop_duplicates(subset='FSi', keep='first').set_index('FSi')

解释:首先我们 reset_index 创建了一个列 FSi 导致 drop_duplicates 作用于列而不是索引。我们保留第一个并将 set_index 再次返回 FSi

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 2021-03-22
    • 2015-11-03
    • 2012-10-13
    • 2016-11-02
    • 2015-09-08
    • 2020-04-03
    • 1970-01-01
    相关资源
    最近更新 更多