我有兩組,其中一組的行要作爲組處理,另一組有待查看。多處理組應用python
test = pd.DataFrame({'Address1':['123 Cheese Way','234 Cookie Place','345 Pizza Drive','456 Pretzel Junction'],'city':['X','U','X','U']})
test2 = pd.DataFrame({'Address1':['123 chese wy','234 kookie Pl','345 Pizzza DR','456 Pretzel Junktion'],'city':['X','U','Z','Y'] , 'ID' : ['1','3','4','8']})
gr1 = test.groupby('city')
gr2 = test2.groupby('city')
目前我申請我的功能組中的每一行,
gr1.apply(lambda x: custom_func(x.Address1, gr2.get_group(x.name)))
但是我不知道該怎麼做多處理這一點。請指教。
編輯: - 我試圖使用dask
,但我不能將整個數據幀傳遞給dask函數 - 因爲它的apply
函數有一個限制。我嘗試在我的gr1(group)上使用dask apply,但由於我在自定義函數中設置索引,dask會拋出一個錯誤,指出「索引器太多」。
這裏有DASK,這給了我一個錯誤 - 「Pandas' object has no attribute 'city'
ddf1 = dd.from_pandas(test, 2)
ddf2 = dd.from_pandas(test2, 2)
dgr1 = ddf1.groupby('city')
dgr2 = ddf2.groupby('city')
meta = pd.DataFrame(columns=['Address1', 'score', 'idx','source_index'])
ddf1.map_partitions(custom_func, x.Address1, dgr2.get_group(x.city).Address1,meta=meta).compute()
看看'dask',它與熊貓很好地結合在一起。 – suvy
是的,但是dask不支持通過應用函數傳遞數據幀。第二件事,當我試圖在組上應用dask時,它會因爲「我試圖在我的custom_func中設置索引」中的「索引太多」而失敗。 –
dask apply應該明智地工作,以便明智地使用map_partition。可能是很酷的你編輯你的問題與你嘗試和錯誤報告。 – suvy