2016-05-26 6 views
0

Ich bin relativ neu in Python-Programmierung. Ich habe ein Pandas DataFrame-Objekt sagen obj1. Ich muss eine Reihe von Umwandlungen auf Datensätze anwenden, die in obj1 ['key'] gespeichert sind. Angenommen, obj1 ['key'] hat 300 Einträge und ich muss func1 dann func2 dann func3 auf jedem der 300 Einträge anwenden und das Endergebnis in obj1 ['key'] speichern. Ein Weg wäre wie folgt zu tun. Gibt es einen besseren Weg, das Gleiche zu tun?Apply Reihe von Transformationen zu Pandas DataFrame Objekt

obj1['key']=[func3(func2(func1(item))) for item in obj1['key']] 

Python Generatoren können nicht für diesen Zweck richtig verwendet werden.

Antwort

2

Ja, können Sie die Standardmethode verwenden DataFrame.apply()

df = df.apply(f1).apply(f2).apply(fn) 
+0

Danke für die Hilfe –

0

definieren eine Funktion

def recursivator(x, fs): 
    return recursivator(fs[-1](x), fs[:-1]) if len(fs) > 0 else x 

x ist die Sache an wird betrieben, fs ist eine Liste von Funktionen.

df = df.applymap(lambda x: recursivator(x, fs))