比如一个dataframe有很多列,包括'id', 'date', 'location', 'sales', 'amount', 'type'
我想返回每天sales最大的那一行。我现在做的是
df.groupby(['date'], as_index=False).agg({'sales': max})
但是这个只能返回date和sales,没有id, location, amount, type这类信息。
这么能得到每天sales最大的完整的行?
1个回答
只用groupby和agg估计做不到。我觉得你可以对date和sales排序,然后对date去重,只保留每个date的最后一行也就是sales最大的一行
df.sort_values(['date', 'sales']).drop_duplicates(['date'], keep='last')
SofaSofa数据科学社区DS面试题库 DS面经
太6了,原来不需要用groupby啊,多谢!
-
robin_he
2019-05-22 13:05