English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pandas-Funktionenanwendung

Beispiel für Pandas-Reindexing-Operation

Um Ihre eigenen oder Funktionen aus anderen Bibliotheken auf Pandas-Objekte anzuwenden, sollten Sie drei wichtige Methoden verstehen. Wie nachstehend beschrieben. Die angemessene Methode hängt davon ab, ob Ihre Funktion den gesamten Datensatz, Zeilenoperationen, Spaltenoperationen oder Elementoperationen durchführen soll.

Tabellenfunktionen Anwendung: pipe() Zeilen- oder Spaltenfunktionen Anwendung: apply() Elementebene Funktionsanwendung: applymap()

Tabellenfunktionen Anwendung

Durch Übergeben einer Funktion und der erforderlichen Anzahl von Parametern als Pipe-Parameter kann auf eine benutzerdefinierte Operation an DataFrames zugegriffen werden

Adder-Funktion

Zum Beispiel, den2Werte werden in den DataFrame hinzugefügt. Die Funktion des Adders addiert zwei numerische Werte und gibt die Summe zurück.

  def adder(ele1,ele2)
    return ele1+ele2

Wir verwenden benutzerdefinierte Funktionen, um mit DataFrames umzugehen.

 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.pipe(adder,2)

Lassen Sie uns das vollständige Programm betrachten:

 import pandas as pd
 import numpy as np
 def adder(ele1,ele2)
    return ele1+ele2
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.pipe(adder,2)
 print(df.apply(np.mean))

Laufender Ergebnis:

       col1 col2 col3
 0 2.176704 2.219691 1.509360
 1 2.222378 2.422167 3.953921
 2 2.241096 1.135424 2.696432
 3 2.355763 0.376672 1.182570
 4 2.308743 2.714767 2.130288

Anwendung von Zeilen- oder Spaltenfunktionen

Mit dem apply() Method kann eine beliebige Funktion entlang der Achse eines DataFrames oder Panels angewendet werden. Diese Methode ist wie beschreibende Statistikmethoden, die optionalen axis Parameter verwenden. Standardmäßig wird diese Operation zeilenweise ausgeführt und jede Spalte wird als Arrayähnliche Form behandelt.

Beispiel 1

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.apply(np.mean)
 print(df.apply(np.mean))

Laufender Ergebnis:

 col1 -0.288022
 col2 1.044839
 col3 -0.187009
 dtype: float64

Durch Übermittlung des axis-Parameters kann die Operation zeilenweise ausgeführt werden.

Beispiel 2

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.apply(np.mean,axis=1)
 print(df.apply(np.mean))

Laufender Ergebnis:

 col1 0.034093
 col2 -0.152672
 col3 -0.229728
 dtype: float64

Beispiel 3

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.apply(lambda x: x.max() - x.min())
 print(df.apply(np.mean))

Laufender Ergebnis:

 col1 -0.167413
 col2 -0.370495
 col3 -0.707631
 dtype: float64

Elementebene Funktionsanwendung

Nicht alle Funktionen können vectorisiert werden (NumPy-Arrays geben weder ein weiteres Array zurück noch irgendeinen Wert zurück), das applymap() -Verfahren auf DataFrames und das map() -Verfahren auf Series akzeptieren ebenfalls jede Python-Funktion, die einen einzelnen Wert annimmt und einen einzelnen Wert zurückgibt.

Beispiel 1

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 # Benutzerdefinierte Funktion
 df['col1'].map(lambda x:x*100)
 print(df.apply(np.mean))

Laufender Ergebnis:

 col1 0.480742
 col2 0.454185
 col3 0.266563
 dtype: float64

Beispiel 2

 import pandas as pd
 import numpy as np
 # Benutzerdefinierte Funktion
 df = pd.DataFrame(np.random.randn(5,3)),columns=['col1','col2','col3'])
 df.applymap(lambda x:x*100)
 print(df.apply(np.mean))

Laufender Ergebnis:

 col1 0.395263
 col2 0.204418
 col3 -0.795188
 dtype: float64