2017-06-05 2 views
0

Ich versuche, ein Pandas Datenframe zu lesen und bestimmte Operationen durchzuführen und den Datenrahmen zurückgeben. Ich möchte auch die Operation multiprozessieren, um mehrere Kerne zu nutzen, die mein System hat.Python Pandas parallel Verarbeitung mit jugs 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 

Wenn ich die Parameter übergeben, die CSV-Datei ist i

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

Ich erhalte einige seltsame Ausgabe

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

Jede Hilfe verarbeiten wollen? Ich möchte im Grunde die Ausgabe von der Funktion speichern

Ich habe bereits die Antwort überprüft und es hat nicht funktioniert. Außerdem verwende ich Pythono 2.7 und Anaconda IDE Pandas memoization

Antwort

0

Dies ist ein Missverständnis, wie jug funktioniert. Das Ergebnis, das Sie bekommen, ist in der Tat ein Task Objekt, das Sie ausführen können: df_returned.run().

Normalerweise hätten Sie dieses Skript jedoch in einer Datei (z. B. analysis.py) gespeichert und jug execute analysis.py aufgerufen, um die Aufgaben auszuführen.

+0

Ich habe 4 Fragen für Sie 1) Wo sollte die .py-Datei gespeichert werden? Ich habe versucht, zu einem anderen Ordner zu navigieren und ausgeführt, es hat nicht funktioniert, also musste ich die Py-Datei in C \ Python \ Scrpit-Ordner einfügen und navigieren Sie durch CD-Befehl und führen Sie es aus. 2) Wie speichere ich die Ausgabe, die ich von df_returned.run() bekommen habe, da dies ein Pandas Datenframe ist und ich den CSV zu dekstop schreiben möchte. 3) Was ist, wenn ich mehrere verschachtelte Funktionen habe, muss ich @TaskGenerator vor jeder Funktion deklarieren? 4) Wie viele Kern verwendet es/ich meine was, wenn ich nur 3 von 4 Kernen für die Funktion verwenden und 1 für nichts verlassen möchte? – Enthusiast

+0

Dies sind ziemlich grundlegende Fragen zur Verwendung von Krug. Ich würde zuerst mit den Tutorials beginnen, bevor ich versuche, mich im Zusammenhang mit Ihrem Problem zu bewerben. Speziellere Fragen werden am besten als separate Qs hier oder auf der Mailingliste jug-users (https://groups.google.com/forum/#!forum/jug-users) gestellt. – luispedro

+0

Ok, wie wäre es nur mit dem Export des CSV-Teils ? – Enthusiast