使用自定义聚合功能提高groupby的效率

2024-04-26 22:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个不太大的数据帧(形状在2000x10000范围内)。你知道吗

我正在尝试groupby一列,并平均前N个非空条目:

例如

def my_part_of_interest(v,N=42):
   valid=v[~np.isnan(v)]
   return np.mean(valid.values[0:N])

mydf.groupby('key').agg(my_part_of_interest)

现在需要很长时间(十几分钟),当.agg(np.nanmean) 而是以秒为单位。你知道吗

如何让它跑得更快?你知道吗


Tags: of数据returnmydefnp条目mean
1条回答
网友
1楼 · 发布于 2024-04-26 22:30:09

需要考虑的事项:

  1. 通过单个操作在整个df上删除nan条目要比在分组数据集块上删除快mydf.dropna(subset=['v'], inplace=True)
  2. 使用.head来切片mydf.groupby('key').apply(lambda x: x.head(42).agg('mean')

我认为这些结合可以优化一些东西,他们更习惯于熊猫。你知道吗

相关问题 更多 >