Pandas: so führen sie werte aus mehreren spalten zu einer zusammen


Sie können die folgenden Methoden verwenden, um Werte aus mehreren Spalten eines Pandas-DataFrames in einer einzigen Spalte zu gruppieren:

Methode 1: Werte nach Standardspaltenreihenfolge zusammenführen

 df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

Methode 2: Werte mithilfe einer bestimmten Spaltenreihenfolge zusammenführen

 df[' coalesce '] = df[[' col3 ', ' col1 ', ' col2 ']]. bfill (axis= 1 ). iloc [:, 0]

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' points ': [np.nan, np.nan, 19, np.nan, 14],
                   ' assists ': [np.nan, 7, 7, 9, np.nan],
                   ' rebounds ': [3, 4, np.nan, np.nan, 6]})

#view DataFrame
print (df)

   points assists rebounds
0 NaN NaN 3.0
1 NaN 7.0 4.0
2 19.0 7.0 NaN
3 NaN 9.0 NaN
4 14.0 NaN 6.0

Methode 1: Werte nach Standardspaltenreihenfolge zusammenführen

Der folgende Code zeigt, wie die Werte aus den Spalten „Punkte“, „Vorlagen“ und „Rebounds“ in einer einzigen Spalte zusammengeführt werden, wobei der erste Wert ungleich Null in den drei Spalten als zusammengeführter Wert verwendet wird:

 #create new column that contains first non-null value from three existing columns 
df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 19.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 14.0

So wurde der Wert in der Zusammenführungsspalte ausgewählt:

  • Erste Zeile: Der erste Wert ungleich Null war 3,0 .
  • Zweite Zeile: Der erste Wert ungleich Null war 7,0 .
  • Dritte Zeile: Der erste Wert ungleich Null war 19,0 .
  • Vierte Zeile: Der erste Wert ungleich Null war 9,0 .
  • Fünfte Zeile: Der erste Wert ungleich Null war 14.0 .

Methode 2: Werte mithilfe einer bestimmten Spaltenreihenfolge zusammenführen

Der folgende Code zeigt, wie die Werte in den drei Spalten zusammengeführt werden, indem die Spalten in der folgenden Reihenfolge analysiert werden: Assists, Rebounds, Punkte.

 #coalesce values in specific column order
df[' coalesce '] = df[[' assists ', ' rebounds ', ' points ']]. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 7.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 6.0

Hier ist die Logik, die verwendet wurde, um zu entscheiden, welcher Wert in die Zusammenführungsspalte eingefügt werden soll:

  • Wenn der Wert in der Hilfsspalte nicht Null ist, verwenden Sie diesen Wert.
  • Andernfalls verwenden Sie diesen Wert, wenn der Wert in der Spalte „Bounces“ nicht Null ist.
  • Andernfalls, wenn der Wert in der Punktespalte nicht Null ist, verwenden Sie diesen Wert.

Hinweis : Die vollständige Dokumentation für die Funktion bfill() finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So kombinieren Sie zwei Spalten in Pandas
So summieren Sie bestimmte Spalten in Pandas
So sortieren Sie in Pandas nach mehreren Spalten

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert