python - 优化熊猫循环
问题描述
我有这个循环是为了计算数据框中相同日期时间的值
for epoch in data_all['EPOCH'].unique():
data_epoch = data_all.query('EPOCH==@epoch')
data_epoch['SIGMA'] = pd.to_numeric(data_epoch['SIGMA'].values)
variance = np.mean(data_epoch['SIGMA'].values ** 2)
但这很慢。你能用一种方法更快地做到这一点吗?
谢谢
解决方案
这只是分组:
variances = data_all.groupby('EPOCH')['SIGMA'].var()
或者,如果您想使用您的公式:
variances = (data_all['SIGMA']**2).groupby(data_all['EPOCH']).mean()
更新对于您的附加问题:
variances = data_all.groupby('EPOCH')['SIGMA'].transform('var')
data_all['GROUP'] = (variances<1).astype(int)
推荐阅读
- reactjs - 使用 React Router Dom 仅在家中显示侧边栏导航
- java - 无法通过 Spring Security 登录到 LDAP
- django - 使用 django 应用程序作为其他 django 应用程序的中央身份验证系统
- rest - 如何处理 REST API 中的异常
- reactjs - 选择所需输入时,在自动完成中出现“对象作为 React 子项无效”的错误
- flutter - 动画
Null Safety 中的 TweenSequence 抛出错误 - javascript - 如何在函数外部的 if 语句中使用函数中的更新局部变量?JS
- python - 使用数据帧的多行来设置 scipy.optimize 的目标函数 - 口袋妖怪数据
- excel - 在两个工作簿之间复制数据的运行时错误“438”
- json - 如何循环 Json 数据?