Как я могу собрать многоядерную программу, используя Pandas? - PullRequest
0 голосов
/ 22 января 2020

мы хотим улучшить производительность кода по сравнению с огромным Pandas DataFrame, используя многоядерное параллельное программирование. Типы функций, которые мы хотим выполнить, бывают следующих типов: одиночная запись (например, квадратная функция, логарифм, обратная, экспоненциальная) и двоичная запись (например, сумма двух переменных, умножение двух переменных, деление двух переменных) , Этот набор функций будет применен ко всем возможным комбинациям переменных в исходном DataFrame. Примером функций, которые мы хотим реализовать в многоядерной парадигме, являются:

  import pandas as pd

    data1 = pd.read_csv("data1_path.csv")
    data2 = pd.read_csv("data2_path.csv")

    def df_square(DF):
        aux_DF = pd.DataFrame()    
        for i in DF.keys():
            aux_DF[i + str(**2)] = DF[i]*DF[i]
        return aux_DF

    def df_sum(DF1, DF2):
        aux_DF = pd.Data_Frame()
        for i in DF1.keys()
            for j in DF2.keys():
                aux_DF[i + str(+) + j] = DF1[i] + DF2[j]
        return aux_DF

    square = df_square(data1)
    sum = df_sum(data1, data2)

1 Ответ

0 голосов
/ 22 января 2020

Вы, вероятно, ищете dask, который по большей части является заменой для pandas, но работает параллельно. Я предлагаю вам дать ему go.

Если вы действительно хотите выполнить некоторые матричные операции, взгляните на векторизованных операций, представленных в NumPy.

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