2016-03-25 14 views
0

Ich habe eine df mit einer Spalte mit Werten Präfix: {H, HR, S, etc.}. Ich möchte die Werte so bearbeiten, dass sie h für alle H, HR, HJ, HC und s für alle S, SR, SJ SC zurückgibt. Die Daten sind herePandas: So bearbeiten Sie Werte in einer Spalte

session prefix number disposition  catcode  bill 
0 114  H 131  support  J6200 H131 
1 114  H 138  oppose L1100 H138 
2 114  H 140  support  NaN  H140 
3 114  H 140  oppose J7500 H140 
4 114  H 140  support  NaN  H140 

I lief folgendes aus MAXU:
df.replace ({ 'prefix': {r '^ (H | HR | HC | HJ |) $': 'h', r '^ (S | SR | SC | SJ |) $': 's'}}, Regex = Wahr, Inplace = True)

und es funktioniert! Problem gelöst!

session  prefix number disposition  catcode 
0 114  h 131  support  J6200 
1 114  h 138  oppose L1100 
2 114  h 140  support  NaN 
+1

Ich konnte kein 'H *' und 'S *' in Ihrem finden Datei. Möchten Sie alle Präfixe ersetzen, die mit "H" beginnen bis "H", und das gleiche für alle Präfixe, die mit "S" -> "S" beginnen? – MaxU

+0

Ja! Danke für's Nachsehen. Ich dachte daran, aus dem Muster des Beispiels zu lernen. Ich habe die Frage mit Ihrem Vorschlag aktualisiert. –

+0

Bitte überprüfen Sie meine aktualisierte Antwort – MaxU

Antwort

1

Versuchen Sie folgendes:

df.replace({'prefix': {r'^(H|HR|H\*)$': 'h', r'^(S|SR|S\*)$': 's'}}, regex=True, inplace=True) 

wenn Sie nur den Anfangsbuchstaben Ihres Präfix Spalte haben wollen:

df.prefix.str[0] 

so dass es mit dem ersten Buchstaben in Kleinbuchstaben zu ersetzen:

df.prefix = df['prefix'].str[0].str.lower() 
+0

@MichaelPerdue, bitte definieren Sie einige Fälle – MaxU

Verwandte Themen