2017-10-03 1 views
-1

Angenommen habe ich eine pd.DataFrame, sagen df, wie folgendeHolen Sie sich eine Zählung der Serie von Datenrahmen in Pandas

df = pd.DataFrame({'No': np.arange(3), 'Status': [0,0,1]}) 

(i) Ich möchte ein pd.Series aus der zweiten Spalte von Dataframe-Objekt extrahieren oben mit 0 durch 'bösartig' und 1 durch 'gutartig' ersetzt. (ii) Dann erhalten Sie eine Zusammenfassung pd.Series dieser neuen pd.Series, die die Anzahl der "bösartigen" und "gutartigen" zählen, was bedeutet, dass die Zusammenfassung pd.Series besteht aus zwei Einträgen und hat den Index ['bösartig', ' gutartig '].

+1

können Sie löschte erwartet zeigen? – Wen

+0

@Wen Genau wie ein pd.Series 'benigne 1 maligne 2', wo" gutartige "und" bösartige "Indizes sind. –

Antwort

0

IIUC

df.assign(Status=df.Status.map({0:'maglinant',1:'benign'})) 
Out[169]: 
    No  Status 
0 0 maglinant 
1 1 maglinant 
2 2  benign 

Ich denke, man

brauchen
df.assign(Status=df.Status.map({0:'maglinant',1:'benign'})).Status.value_counts() 
Out[256]: 
maglinant 2 
benign  1 
Name: Status, dtype: int64 
+0

Große Antwort auch! Aber ich muss zuerst 'Status' extrahieren. –

+0

@JingZeng können Sie als Datenformat formatieren? – Wen

+1

@ Wen Das ist genau das, was ich will, vielen Dank. :) –

1

Nicht sicher, was Sie den Index genau ändern, Index bedeutet '0,1,2' unten.

df.Status.replace({0:'malignant',1:'benign'}) 
0 malignant 
1 malignant 
2  benign 
+0

Sorry für verwirrende, ich habe meine letzte Frage schon geändert. Und deine Antwort ist genau das, was ich in der ersten Frage will. –

Verwandte Themen