[英]Poor performance using .loc in Dataframe
我正在尝试通过此 dataframe 的索引组合某些列,我使用简单的 pd.cov() function 来计算 u_centro、v_centro 和 w_centro 的方差和协方差。
但是,当我尝试使用 .loc 对这些值进行切片时,性能非常慢(非常慢。):例如:
df_uu = df.loc[(iz_centro,'u_centro'),'u_centro']
我想要 u_centro 的所有 u_centro 组合。 结果正是我想要的,但是完成这个花费的时间太荒谬了,超过 10 分钟。
全部数据: https://raw.githubusercontent.com/AlessandroMDO/LargeEddySimulation/master/sd.csv
有不同的方法可以做到这一点,但最好的性能是使用矢量化函数,例如xs
(感谢@Paul H)或 boolean 掩码:
startime = datetime.now()
mask = df.index.get_level_values(1) == 'u_centro'
df.loc[mask]
print(datetime.now() - startime) # 0:00:00.001417
我不知道在这种情况下1417 µs
是否很重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.