pandas разделение фреймов данных и мультиобработка - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу разделить фрейм данных на несколько фреймов на основе значений столбца 'col1' и назначить разделенный фрейм данных каждому ядру с помощью многопроцессорной обработки.

фрейм данных:

   col  col1
0   0   a
1   1   a
2   2   b
3   3   a
4   4   c
5   5   c
6   6   a
7   7   c
8   8   b
9   9   a

import multiprocessing
import pandas as pd
import numpy as np
from multiprocessing import Pool, cpu_count

cores = cpu_count() 
partitions = cores

df = pd.DataFrame({'col': [0,1,2,3,4,5,6,7,8,9],
              'col1':['a','a','b','a','c','c','a','c','b','a']})

def parallelize_dataframe(df, func):
    data = np.array_split(df, partitions)
    print(data)
    pool = Pool(cores)
    df = pd.concat(pool.map(func, data))
    pool.close()
    pool.join()
    return df


def square(x):
    return x**2

def test_func(data):
    data["square"] = data["col"].apply(square)
    return data

test = parallelize_dataframe(df, test_func)

ожидаемое разделение фрейм данных

    col col1
0   0   a
1   1   a
3   3   a
6   6   a
9   9   a

и

    col col1
2   2   b
8   8   b

аналогично для уникальных значений в столбце 'col1'

, а затем назначьте разделенный фрейм данных каждому ядру с помощью мультиобработки и примените к нему функцию.

, пожалуйста, помогите мне разбить информационный фрейм и назначьте это каждому ядру отдельно для параллельной обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...