python - 如何在 pandas Series 对象上并行化 `map` 函数?

标签 python pandas parallel-processing

例如,我有一个 Series 对象,其值是波形转储的文件名。比如说,我想取每个波形的平均值。

为什么我要并行化它?这些波形转储只能通过专有软件读取。我需要调用该程序来进行分析(它可以输出到 stdout,所以没有问题)。

在代码中,它可能是这样的:

from subprocess import check_output

def get_average(filename_str):
    average = check_output(['proprietary_mean_calculator', filename_str])
    return float(average)

# waveform_dumps is a pandas Series object
waveform_averages = waveform_dumps.map(get_average)

最佳答案

您是否使用 pandas 可能并不重要。您正在寻找的是简单的并行执行。

尝试concurrent.futures

from subprocess import check_output
import concurrent.futures
import pandas as pd

def get_average(filename_str):
    average = check_output(['proprietary_mean_calculator', filename_str])
    return float(average)

with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
    waveform_averages = executor.map(get_average, waveform_dumps)

# to make the result a pd.Series, if desired:
waveform_averages = pd.Series(waveform_averages, index=waveform_dumps.index)

关于python - 如何在 pandas Series 对象上并行化 `map` 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36910873/

相关文章:

python - 从一个数据框中获取缺失的列并将其附加到另一个数据框中

scala - 计算 Scala 并行集合中每个项目的出现次数

c - OpenMP:任务中的竞争条件

python - argparse 按需导入类型、选择等

python - 将 Pandas Dataframe 向量化为 Numpy 数组

Python dataframe 将点击路径行转为列

scala - 选择Akka还是Spark进行并行处理?

python - 使用 python 从另外两条曲线创建第三条曲线

python - 如何在 pandas 数据框中打破/弹出列表内的嵌套字典?

python - 如何定义自己的评分策略 sklearn.model_selection.GridSearchCV?