Python 加快数据帧列的循环速度

Python 加快数据帧列的循环速度,python,pandas,Python,Pandas,很容易找到方法来找到关于加速和矢量化数据帧行循环的问题。但是专栏呢 假设我捕获了一些滞后特性作为列,我的数据帧是这样的形式: 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_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循环中添加操作,这将花费很长时间


有没有办法加速或矢量化它

您可以
将这些列剪切成单独的文件,并调用python代码对每个列进行聚合-这样您就不必等到第一列完成后再开始第二列。-这种“手动多线程”方法适合我