【问题标题】:How to drop duplicated rows in data frame based on certain criteria?如何根据某些条件删除数据框中的重复行?
【发布时间】:2020-02-05 04:33:25
【问题描述】:

enter image description here

我们现在的目标是删除重复的玩家行,但保留 G 列中计数最多的行(已玩游戏)。我们可以使用什么代码来实现这一点?我在此处附加了指向 Pandas 输出图像的链接。

【问题讨论】:

标签: python pandas


【解决方案1】:

您可能希望首先按 G 列对数据框进行排序。

df = df.sort_values(by='G', ascending=False)

然后您可以使用 drop_duplicates 删除除第一次出现的所有重复项。

df.drop_duplicates(['Player'], keep='first')

【讨论】:

    【解决方案2】:

    我能想到的方法有两种

    df.groupby('Player', as_index=False)['G'].max()
    

    和

    df.sort_values('G').drop_duplicates(['Player'] , keep = 'last')
    

    第一种方法使用 groupby 按 Player 对值进行分组,并收缩行保持 G 最大的行。第二种方法使用 Pandas 的 drop_duplicate 方法来实现。

    【讨论】:

      【解决方案3】:

      试试这个,

      假设您的数据框对象是 df1 然后

      series= df1.groupby('Player')['G'].max() # this will return series.
      pd.DataFrame(series)
      

      让我知道这是否适合你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        相关资源
        最近更新 更多