2016-08-08 43 views
-1

Ich habe einen Datenrahmen mit mehreren Spalten und kategorischen Daten darin, dem ich einen numerischen (int) Wert zuweisen möchte, um mit der Datenbereinigung fortzufahren, die ich machen muss.Wie konvertiert man bestimmte kategorische Werte von einem DataFrame in numerisch (int) in Python?

z.B. Ich mag die Zellen in der Spalte OldValue & NewValue „1. Call“ enthält einen Wert von 2 zu haben „2. Call“ auf einen Wert von 3 hat, und so weiter ...

poste ich ein Screenshot meinen Datenrahmen Du verstehst was ich meine.

Ich bin neu in Programmiersprachen daher wenn Sie bitte ein praktisches Beispiel zu Ihrer Antwort geben könnte, wäre es eine große Hilfe.

+1

Bitte veröffentlichen Sie keine Bilder, um Beispieldaten zu teilen. Kopieren Sie Ihre Daten stattdessen und fügen Sie sie in Textformat ein, und formatieren Sie sie mithilfe von Codeformatierung als Tabelle. Bitte zeigen Sie auch die gewünschte Ausgabe im selben Format an. – ayhan

Antwort

0

Sie replace verwenden können und eine dictinary vorbei, die auf einen numerischen Wert jeder Kategorie abbildet und dann die neue Spalte Ihrer Datenrahmen hinzufügen:

df['OldValueInt'] = df['OldValue'].replace({'1st Call attempted': 2, '2nd Call attempted': 3}) 

Beispiel:

df = pd.DataFrame([['a','x'],['b','x'],['a','y']], columns=['ab','xy']) 

df['abInt'] = df['ab'].replace('a': 1, 'b': 2) 

print df 

die liefert

ab xy abInt 
0 a x  1 
1 b x  2 
2 a y  1 

oder wenn Sie mehrere Spalten ersetzen möchten:

df[['ab','xy']] = df.replace({'ab': {'a': 1, 'b': 2}, 
           'xy': {'x': 2, 'y': 3}}) 
+0

Danke Kumpel, es war wirklich hilfreich und einfach! – Bostan