我有这个循环,以便为数据帧中的相同日期时间计算一个值
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)
但这很慢。您能更快地做到这一点的方法吗?
谢谢
答案 0 :(得分:1)
这只是分组方式:
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)