【问题标题】:Fastest iteration on a dataframe by applying an url function通过应用 url 函数对数据帧进行最快的迭代
【发布时间】:2020-05-09 21:03:27
【问题描述】:

我需要通过为我的数据框的每一行插入一个 variable=var 来从 url 请求一些数据。我写了一个遍历每一行的函数

def df_eval(data):
    data_eval = data.copy()
    df_price = []
    for i in data_eval.index:
        var = data_eval.at[i, 'var']
        url = ("http://blablabla/params&cid={}".format(var))
        r_json = requests.get(url).json()
        df = json_normalize(r_json)
        df_price.append(df['price'])
        print(df_price)

data_eval['price_eval'] = df_price
return data_eval

您能否建议一种更快的方法来执行此操作。目前,超过 23000 行大约需要 30 分钟。

【问题讨论】:

    标签: python-3.x pandas loops iteration


    【解决方案1】:

    你可以像这样并行化你的调用:

    import random
    import pandas as pd
    import numpy as np
    from multiprocessing import Pool
    
    data_split = np.array_split(data, n_cores)
    pool = Pool(n_cores)
    data = pd.concat(pool.map(df_eval, data_split))
    pool.close()
    pool.join()
    

    来源:https://towardsdatascience.com/make-your-own-super-pandas-using-multiproc-1c04f41944a1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2019-05-13
      • 2020-10-11
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 2016-10-27
      相关资源
      最近更新 更多