我正在尝试执行与SQL group by相同的操作,并取最小值:
select id,min(value) ,other_fields...
from table
group by ('id')
我试过了:
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中会更快吗?
发布于 2019-05-01 06:51:24
对DataFrame.sort_values
和DataFrame.drop_duplicates
使用alternative
df1 = df.sort_values(by=['value']).drop_duplicates('id', keep='first')
https://stackoverflow.com/questions/55932560
复制相似问题