2017-06-05 23 views
0

我正在嘗試讀取一個熊貓數據框並執行某些操作並返回數據框。我也希望對該操作進行多處理,以利用我的系統具有的多個內核。使用水罐的Python熊貓並行處理TaskGenerator

import pandas as pd 
import re 
from jug import TaskGenerator 
@TaskGenerator 
def find_replace(input_path_find): 
    start_time = time.clock() 
    df_find = pd.read_csv(input_path_find) 
    df_find.currentTitle=df_find.currentTitle.str.replace(r"[^a-zA-Z0-9`~!|@#%&_}={:\"\];<>,./. -]",r'') 
    #extra space 
    df_find.currentTitle=df_find.currentTitle.str.replace('\s+', ' ') 
    #length 
    df_find['currentTitle_sort'] = df_find.currentTitle.str.len() 
    #sort 
    df_find = df_find.sort_values(by='currentTitle_sort',ascending=0) 
    #reindx 
    df_find.reset_index(drop=True,inplace=True) 
    del df_find['currentTitle_sort'] 
    return df_find 

當我通過我得到一些奇怪的輸出

find_replace 
Task(__main__.find_replace, args=('C:\\Users\\Dell\\Downloads\\Find_Replace_in_this_v1.csv',), kwargs={}) 
    In [ ]: 

任何幫助的參數,它是CSV文件,我想處理

df_returned = find_replace('C:\\Users\\Dell\\Downloads\\Find_Replace_in_this_v1.csv') 

?我基本上想要保存功能的輸出

我已經檢查了答案,它沒有工作。此外,我正在使用pythono 2.7和anaconda IDE Pandas memoization

回答

0

這是誤解jug如何工作。

您得到的結果實際上是一個Task對象,您可以運行該對象:df_returned.run()

但是,通常情況下,您會將此腳本保存到一個文件(例如analysis.py)並且調用jug execute analysis.py來執行任務。

+0

我有4個問題給你1).py文件應該保存在哪裏?我試圖導航到不同的文件夾並執行它不起作用,所以我不得不將py文件粘貼到c \ python \ scrpit文件夾中,並通過cd命令導航並執行它。 2)我如何保存從df_returned.run()獲得的輸出,因爲這是一個熊貓數據框,我想將csv寫入dekstop。 3)如果我有多個嵌套函數,我必須在每個函數之前聲明'@TaskGenerator'嗎? 4)它使用多少核心/我的意思是如果我只想使用4個核心中的3個用於該功能,並且將1留在什麼地方? – Enthusiast

+0

這些是關於如何使用壺的基本問題。在嘗試應用問題的上下文之前,我先從教程開始。更具體的問題最好在這裏或在jug-users郵件列表(https://groups.google.com/forum/#!forum/jug-users)上作爲單獨的問題詢問。 – luispedro

+0

好吧,如何導出CSV部分? – Enthusiast