发布
社区首页 >问答首页 >pandas.core.groupby.DataFrameGroupBy.idxmin()非常慢,我怎样才能让我的代码更快呢?

pandas.core.groupby.DataFrameGroupBy.idxmin()非常慢,我怎样才能让我的代码更快呢?
EN

Stack Overflow用户
提问于 2019-05-01 14:47:01
回答 1查看 330关注 0票数 1

我正在尝试执行与SQL group by相同的操作,并取最小值:

代码语言:javascript
代码运行次数:0
复制
select id,min(value) ,other_fields...
from table
group by ('id')

我试过了:

代码语言:javascript
代码运行次数:0
复制
dfg = df.groupby('id', sort=False)
idx = dfg['value'].idxmin()
df = df.loc[idx, list(df.columns.values)]

但是第2行https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.DataFrameGroupBy.idxmin.html ()在df中的~4M列上花费了半个多小时,而group by只用了不到1秒,我错过了什么,它应该花那么长时间吗?怎样才能让这个过程更快呢?在纯SQL中会更快吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 14:51:24

DataFrame.sort_valuesDataFrame.drop_duplicates使用alternative

代码语言:javascript
代码运行次数:0
复制
df1 = df.sort_values(by=['value']).drop_duplicates('id', keep='first')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55932560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档