我的数据框不太大(形状在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)
花费很长时间(数十分钟)
而是以秒为单位。
如何使其运行更快?
答案 0 :(得分:2)
要考虑的一些事情:
mydf.dropna(subset=['v'], inplace=True)
上进行操作要快mydf.groupby('key').apply(lambda x: x.head(42).agg('mean')
我认为那些结合起来可以使事情有所优化,并且对熊猫来说更惯用。