2017-06-05 9 views
0

私はpandasデータフレームを読み込み、特定の操作を実行してデータフレームを返そうとしています。私はまた、私のシステムが持っている複数のコアを利用するために操作を多重処理したいと思っています。jugsを使用したPython pandas並列処理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 

私はCSVファイルでパラメータを渡すとき、私は

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

を処理したい私は

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

任意の助けをいくつかの奇妙な出力を取得していますか?私は基本的に関数の出力を保存したい

私はすでに答えをチェックしていて、うまくいきませんでした。また、私はpythono 2.7とanaconda IDEを使用していますPandas memoization

答えて

0

これは、jugの動作の誤解です。

実際にはTaskオブジェクトが表示されます。実行できるオブジェクトはdf_returned.run()です。

通常、このスクリプトをファイル(例:analysis.py)に保存し、jug execute analysis.pyという名前のタスクを実行するとします。

+0

私はあなたに4つの質問があります。1).pyファイルを保存する場所は?私は別のフォルダに移動しようとしたが、それは動作しませんでしたので、私は\ python \ scrpitフォルダにpyファイルを貼り付け、cdコマンドをナビゲートして実行しなければならなかった。 2)私はdf_returned.run()から得た出力をどのように保存するのですか?これはpandasデータフレームであり、csvをdekstopに書きたいと思います。 3)複数のネストされた関数を持つ場合、すべての関数の前に '@TaskGenerator'を宣言する必要がありますか? 4)コアの使用数/ 4コアのうち3コアのみを使用して1のままにしたい場合はどうすればよいですか? – Enthusiast

+0

これらは、ジャグの使い方に関する非常に基本的な質問です。私はあなたの問題の文脈で適用しようとする前にチュートリアルから始めます。より具体的な質問は、別の質問として、またはjug-usersのメーリングリスト(https://groups.google.com/forum/#!forum/jug-users) – luispedro

+0

にお尋ねください。 ? – Enthusiast

関連する問題