很容易找到方法来找出有关加速和矢量化数据帧行循环的问题。但是列呢?你知道吗
假设我捕获了一些滞后的特性作为列,我的数据帧是这样的形式:
feature_1 | feature_1_lag_1 | feature_1_lag_2 | feature_1_lag_3 | feature_2 | feature_2_lag_1 | ... | feature_n_lag_3
现在,如果我愿意的话,让我们来计算每个特征与平均值、最大值和最小值的比值
for feature in feature_list:
feature_lags_names = ["{}_lag_{}".format(feature, range(1, 4)]
df["{}_ratio_against_avg".format(feature)] = df[feature] / df[feature_lags_names].mean(axis=1)
df["{}_ratio_against_min".format(feature)] = df[feature] / df[feature_lags_names].min(axis=1)
df["{}_ratio_against_max".format(feature)] = df[feature] / df[feature_lags_names].max(axis=1)
问题是,如果我有数百个特性,如果我想计算更多不同的聚合,我只会在for循环中添加操作,结果会花费很长时间。你知道吗
有什么办法可以加快速度或者矢量化吗?你知道吗
您可以
cut
将这些列放入单独的文件中,并调用python代码对每个列进行聚合—这样您就不必等到第一列完成后再开始第二列。-这种“手动多线程”方法对我很有效。你知道吗相关问题 更多 >
编程相关推荐