加速数据帧列的循环

2024-03-29 05:49:13 发布

您现在位置:Python中文网/ 问答频道 /正文

很容易找到方法来找出有关加速和矢量化数据帧行循环的问题。但是列呢?你知道吗

假设我捕获了一些滞后的特性作为列,我的数据帧是这样的形式:

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循环中添加操作,结果会花费很长时间。你知道吗

有什么办法可以加快速度或者矢量化吗?你知道吗


Tags: 数据formatdffornames特性min矢量化
1条回答
网友
1楼 · 发布于 2024-03-29 05:49:13

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

相关问题 更多 >