Многопроцессорная обработка Python и Pandas - общая память - PullRequest
0 голосов
/ 16 октября 2018

У меня 15 больших фреймов данных (26000x2500 каждый).В настоящее время я использую их как словарь данных, но при необходимости их можно изменить.

Мне нужно выполнить операции с каждым столбцом (около 2500), и они полностью независимы, поэтому я решил, что это хороший кандидатдля параллельной обработки.В данный момент мой код выполняется за несколько часов, но я бы хотел ускорить его.

Вот моя структура кода:

Main.py

import Processor

# Build dataframes from CSV files
dataframes = ...
p = Processor(dataframes)
p.run()

Processor.py

import multiprocessing as mp

class Processor():
    def __init__(self, dataframes):
        self._dataframes = dataframes

    def run():
        # Loop at each column
            # Launch new process and perform operations on column
            # Receive results back and store them

У меня есть 2 вопроса:

  1. Каков наилучший способ достижения параллельной обработки,Процесс или пул?
  2. Как я могу совместно использовать кадры данных в памяти, чтобы мне не приходилось копировать их в каждый поток / процесс?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...