簡體   English   中英

加快遍歷熊貓數據框列的速度

[英]Speed up looping through pandas dataframe columns

很容易找到方法來查找有關通過熊貓數據幀的行加速和向量化循環的問題。 但是列呢?

假設我捕獲了一些滯后特征作為列,並且我的數據框具有以下形式:

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代碼進行匯總-這樣,您不必等到第一列完成就可以開始第二列。 -這種“手動多線程”方法對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM