gpt4 book ai didi

python - 删除重复项,将最高值的行保留在另一列中

转载 作者:行者123 更新时间:2023-12-02 03:40:57 26 4
gpt4 key购买 nike

a = [['John', 'Mary', 'John'], [10,22,50]]
df1 = pd.DataFrame(a, columns=['Name', 'Count'])

给定这样的数据框,我想将“Name”的所有相似字符串值与“Count”值进行比较,以确定最高值。我不知道如何在 Python 的数据框中执行此操作。

例如:在上述情况下,答案是:

  • 姓名计数
  • 3 月 22 日
  • 约翰福音 50

较低的值 John 10 已被删除(我只想根据“Name”的相同值查看“Count”的最高值)。

在 SQL 中,它类似于 Select Case 查询(其中我选择 Case where Name == Name & Count > 递归地确定最大数字。或者每个名称的 For 循环,但据我了解循环由于对象的性质,DataFrames 是一个坏主意。

有没有办法在 Python 中使用 DF 来做到这一点?我可以使用每个变量创建一个新的数据框(一个只有 John,然后获得最高值(df.value()[:1] 或类似的值)。但由于我有数百个唯一的条目,这似乎是一个糟糕的解决方案。 :D

最佳答案

sort_valuesdrop_duplicates

df1.sort_values('Count').drop_duplicates('Name', keep='last')

Name Count
1 Mary 22
2 John 50

或者,就像 miradulo 所说的那样,groupbymax

df1.groupby('Name')['Count'].max().reset_index()

Name Count
0 John 50
1 Mary 22

关于python - 删除重复项,将最高值的行保留在另一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com