pandas返回组内某列值最大的行?

  统计/机器学习 数据预处理 Python    浏览次数:5337        分享
0

比如一个dataframe有很多列,包括'id', 'date', 'location', 'sales', 'amount', 'type'

我想返回每天sales最大的那一行。我现在做的是

df.groupby(['date'], as_index=False).agg({'sales': max})

但是这个只能返回date和sales,没有id, location, amount, type这类信息。

这么能得到每天sales最大的完整的行?

 

robin_he   2019-05-20 04:13



   1个回答 
2

只用groupby和agg估计做不到。我觉得你可以对date和sales排序,然后对date去重,只保留每个date的最后一行也就是sales最大的一行

df.sort_values(['date', 'sales']).drop_duplicates(['date'], keep='last')
SofaSofa数据科学社区DS面试题库 DS面经

蘑菇蘑菇   2019-05-20 23:36

太6了,原来不需要用groupby啊,多谢! - robin_he   2019-05-22 13:05


  相关讨论

pandas df怎么根据weekgroup补齐没有的行呢

pandas groupby agg中使用自定义函数

对pandas.DataFrame进行groupby结果中index的问题

嵌套dictionary类型数据转成pandas dataframe的问题

pandas groupby返回组内排序

怎么把collections.Counter的计数结果转为pandas的DataFrame

怎么对pandas dataframe的列求众数

pandas 如何扔掉同时满足两个特征过滤条件的数据?

pandas怎么求一列的移动中位数?

Python Pandas loc切片问题

  随便看看

什么是SMOTE sampling方法?

python里怎么求一个矩阵的秩?

pandas同时返回一个dataframe的前几行(head)和后几行(tail)

R里线性回归结果中最后的F-statistic什么意思?有什么用?

怎么理解库克距离(Cook's distance)?