Erstellen Sie eine neue Spalte mit eindeutigen Werten aus einer anderen in Python Pandas - ohne Gruppierung

Frisk19

Ich habe bereits eine Frage gestellt, aber ich habe sie schlecht dargestellt. Hier mein Problem:

Ich habe so einen Datenrahmen:

Spalte1 Spalte2 Spalte3 Spalte4 GEWÜNSCHTE SPALTE
SF 123 01/02 HOCH UP, WA
BF 543 30/12 TUN STERBEN AN
QW 241 30/12 VON STERBEN AN
SF 123 01/02 WA UP, WA
QW 789 20/11 D D
SF 678 31.12. OT OT

Ich möchte die GEWÜNSCHTE SPALTE erhalten . Die Logik ist folgende:

  • Habe eine Bedingung, die die Fälle unterscheidet, in denen Col1 gleich SF ist oder nicht
  • Falls Col1 NICHT gleich SF ist, würde ich nach Col3 gruppieren und Elemente von Col4 aggregieren
  • Falls Col1 gleich SF ist, würde ich für Col2 und Col3 gruppieren und Elemente von Col4 aggregieren

Wo ist mein Problem? Ich weiß nicht, ob ich überlegt habe, aber die Verwendung von groupby pandas reduziert die Zeilen des Datenrahmens. Mein Ziel ist es einfach, eine Spalte hinzuzufügen, wie ich oben gezeigt habe.

Vielen Dank im Voraus!!!

Jesreel

Verwendung GroupBy.transformmit numpy.where:

m = df.Col1.eq('SF')

s1 = df.groupby(['Col2','Col3'])['Col4'].transform(', '.join)
s2 = df.groupby(['Col3'])['Col4'].transform(', '.join)
df['DESIRED COLUMN'] = np.where(m, s1, s2)
print (df)
  Col1  Col2   Col3 Col4 DESIRED COLUMN
0   SF   123  01/02   UP         UP, WA
1   BF   543  30/12   DO         DO, AF
2   QW   241  30/12   AF         DO, AF
3   SF   123  01/02   WA         UP, WA
4   QW   789  20/11    D              D
5   SF   678  31/12   OT             OT

Mögliche Lösung, wenn NaNs in Col2, Col3:

m = df.Col1.eq('SF')

df1 = df.fillna({'Col2':'nan', 'Col3':'nan'})
s1 = df1.groupby(['Col2','Col3'])['Col4'].transform(', '.join)
s2 = df1.groupby(['Col3'])['Col4'].transform(', '.join)
df['DESIRED COLUMN'] = np.where(m, s1, s2)

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Python Pandas: Erstellen Sie eine neue Spalte mit Berechnungen basierend auf kategorialen Werten in einer anderen Spalte

Pandas - Erstellen Sie eine neue Spalte mit Werten aus einer anderen Spalte basierend auf str enthält

Erstellen Sie eine neue Spalte mit Werten, die aus einer anderen Tabelle indiziert wurden

Erstellen Sie eine neue Spalte in einem DataFrame mit Werten aus einer anderen Zeile

So erstellen Sie eine neue Spalte mit einer Zeitreihe aus numerischen Werten in anderen Spalten in derselben Zeile

Python Pandas: Erstellen Sie eine neue Spalte mit Mindestwerten basierend auf eindeutigen Bezeichnern in anderen Spalten

So erstellen Sie eine neue dichotomisierte Spalte aus Werten in einer vorhandenen Spalte mit pandas

Erstellen Sie eine neue Spalte aus einer anderen Spalte in Python

Erstellen Sie eine neue Spalte aus einer Funktion in einem Pandas-Datenrahmen mit Werten aus Datenrahmen

Pandas erstellen eine neue Spalte mit allen Einträgen aus einer anderen Spalte, die einem eindeutigen Wert entsprechen

Erstellen Sie eine neue Spalte mit Zahlen in Abhängigkeit von einer eindeutigen Zeichenfolge einer anderen Spalte

Erstellen Sie eine neue Spalte basierend auf Gruppierung ähnlicher Werte in einer anderen Spalte in Pandas

So erstellen Sie eine neue Spalte mit eindeutigen Werten

Analysieren Sie eine Spalte mit X eindeutigen Werten in X neue Spalten, die mit Werten aus einer anderen Spalte R gefüllt sind

Pandas/Python - Erstellen Sie eine neue Spalte basierend auf Querverweisen aus einer anderen Spalte

Erstellen Sie eine Spalte mit aufsteigenden Werten basierend auf eindeutigen Werten in einer anderen Spalte in R, wobei neue Daten stapelweise hinzugefügt werden

Erstellen Sie eine neue Spalte mit Wert in einer anderen in Pandas

So erstellen Sie eine neue Spalte mit Werten als - 'ein Wort als Präfix' + 'Werte aus einer anderen Spalte' in SQL

So erstellen Sie eine neue Tabelle mit bestimmten Werten, wählen jedoch das Maximum aus einer anderen Spalte aus

Pandas - Erstellen Sie eine Spalte (Spalte C) mit Werten aus einer anderen Spalte (Spalte A), wenn eine Bedingung in einer anderen Spalte (Spalte B) beobachtet wird

Erstellen Sie eine neue Spalte in Abhängigkeit von Werten aus einer anderen Spalte

Erstellen Sie eine neue Spalte mit den nächstgelegenen Werten gemäß einer anderen Spalte nach Gruppen

Erstellen Sie Pandas DataFrames aus eindeutigen Werten in einer Spalte

So erstellen Sie neue Werte in einer Pandas-Datenrahmenspalte basierend auf Werten aus einer anderen Spalte

Erstellen Sie eine Tabelle mit eindeutigen Werten aus einer anderen Tabelle

Erstellen Sie eine neue Spalte mit bestimmten Werten aus anderen Spalten

Erstellen Sie eine neue Spalte mit Werten aus anderen Spalten im Datensatz

Erstellen Sie eine neue Spalte, die mit Werten aus einer anderen Tabelle gefüllt ist, wenn sie zwischen zwei anderen Spalten in der anderen Tabelle liegt

So erstellen Sie eine neue Spalte basierend auf Werten aus anderen Spalten in einem Pandas DataFrame