【发布时间】:2018-12-29 18:37:08
【问题描述】:
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
【问题讨论】:
-
你应该修复你的样本输入,但我猜你想要
df.groupby('Name').Count.max()? -
让我尝试修复它,Count.max 在这里帮不了我。我会再试一次。