【问题标题】:How to use multithreading / multiprocessing in place of For loop with pandas dataframe如何使用多线程/多处理代替带有熊猫数据框的 For 循环
【发布时间】:2021-05-13 19:16:51
【问题描述】:

目前,我在一个项目中,根据行数据框中提供的数据执行验证,所以我目前的方法是执行验证的顺序方法。

for index in mt.index():
    #File Reading 
    #performing validation

但我想实现多线程/多处理以提高我在当前方法中的处理时间,这将花费比预期更多的时间。 任何人都可以建议或帮助我如何实现增强我的脚本性能的多线程/多处理。

【问题讨论】:

    标签: python pandas multithreading dataframe multiprocessing


    【解决方案1】:

    您可以使用 Pool API:

    from multiprocessing import Pool
    
    p = Pool()
    
    def validate(index):
       ## do validation work for a given index here
    
    result = p.map(validate, mt.index())
    

    map 函数将在mt.index() 的值上并行化循环。查看these docs 了解更多选项。

    【讨论】:

    • 是否可以将多个参数传递给验证函数。
    • 是的,你可以传递一个元组map(validate, mt.index(), args=(tuple of arguments)
    猜你喜欢
    • 2021-10-06
    • 2014-06-25
    • 2018-12-30
    • 1970-01-01
    • 2022-01-08
    • 2013-04-13
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    相关资源
    最近更新 更多