碰见一个七千多万行的数据,结构是这样的
id | a | b | c | d |
---|---|---|---|---|
2333 | 2 | 3 | 4 | 5 |
233 | 3 | 3 | 4 | 5 |
12333 | 1 | 3 | 3 | 5 |
12333 | 1 | 3 | 4 | 5 |
第1列是标识,a,b,c,d是记录的数值,标识里面会有重复的,目的是想要找到唯一id,并且后面数值加起来最大的那一行。
-
开始直接做了
df['id'].value_counts().index
,然后遍历里面id,再匹配出来id为这个值的所有行,挑出后面值加起来最大的那个。但这个数据太大了,跑起来又慢。 -
想到了groupby,但是这个groupby是聚合函数,带不出后面原始数据
-
再转换想法,那就去重好了,保留值最大的那一行就可以了,果然快了文章来源:https://www.toymoban.com/news/detail-731108.html
df['_num'] = df.iloc[:, 1:].sum(axis=1)
df_ = df.sort_values('_num', ascending=False).drop_duplicates(subset=['id'], keep='first')
就酱文章来源地址https://www.toymoban.com/news/detail-731108.html
到了这里,关于pandas 识别最大值并去除重复项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!