加快循环遍历熊猫数据框列

时间:2018-07-30 03:35:13

标签: 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_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周期中添加操作,这将花费很长时间。

有什么方法可以加快速度或使其向量化吗?

1 个答案:

答案 0 :(得分:0)

您可以将这些列cut放入单独的文件中,并调用python代码对每个列进行汇总-这样,您不必等到第一列完成就可以开始第二列。 -这种“手动多线程”方法对我有用。