Параллельная обработка строк фрейма геоданных для создания нескольких фреймов геоданных в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Параллельная обработка строк фрейма геоданных для создания нескольких фреймов геоданных в Python

Сообщение Anonymous »

У меня есть функция myfunc , которая принимает в качестве входных данных строку фрейма геоданных gpd_in и после некоторой обработки возвращает новый фрейм геоданных с несколькими строками. Как только функция myfunc применяется к каждой строке входного фрейма геоданных, все результирующие выходные фреймы геоданных объединяются для создания окончательного результата. Есть ли способ применить myfunc для параллельной обработки строк входного фрейма геоданных?
Пример:

Код: Выделить всё

import geopandas as gpd
def myfunc(row):
#some processing using different attributes of row and row.geometry
#resulting in the creation of list of geometries with their own attributes
gdf_new = gpd.GeoDataFrame(new_geom_list, columns=['geometry'], geometry='geometry', crs=crs)
gdf_new['Attr1'] = attr1_list
gdf_new['Attr2'] = attr2_list
return gdf_new

gpd_out = gpd.GeoDataFrame()
crs = gpd_in.crs
for row in gpd_in.itertuples():
gpd_out = gpd.pd.concat([gpd_out, myfunc(row)], ignore_index = True)

Можно ли запустить цикл for параллельно?
Сначала я пытался использовать .apply, но кажется, что .apply не будет работать, поскольку myfunc возвращает новый кадр геоданных вместо изменения значения в строке.
Я попробовал Parallel из joblib следующим образом:

Код: Выделить всё

results = Parallel(n_jobs=-1)(delayed(myfunc)(row) for row in gpd_in.itertuples())
но возникла следующая ошибка:

Код: Выделить всё

PicklingError: Could not pickle the task to send it to the workers.


Подробнее здесь: https://stackoverflow.com/questions/784 ... mes-in-pyt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»