Ich habe eine Pandas Datenrahmen wie diese bekommen:pandas.DataFrame.loc, Etikettieren Daten in neue Spalte
ranking
1 4.33
2 1.34
3 3.76
..
Und ich möchte diese erstellen:
ranking label
1 4.33 2
2 1.34 0
3 3.76 1
..
So ein Ranking < 3.5
führt zu einem Label von 0
führt ein Ranking zwischen 3.5
und 4.25
zu einem Label von 1
, und ein Ranking > 4.25
führt zu einem Label von 2
.
Dies ist der Code, den ich bisher geschrieben:
df = pd.read_csv('./data/Step7_final.csv', index_col=False, encoding="ISO-8859-1")
df['label'] = df.ranking.where(df.ranking > 3.4999, 0)
df.loc[df.label > 3.4999 and < 4.2499, 'label'] = 1
df.loc[df.label > 4.2499, 'label'] = 2
Die dritte Zeile, wo ich das Etikett 1 auf der Rangwerte zwischen 3,5 zuweisen und 4,25 nicht funktioniert ... Wie kann ich diese Arbeit machen?
Verwenden 'df.loc [(df.label> 3,4999) & (df.label <4,2499), 'label']' statt. – IanS
Danke IanS! Das hat perfekt funktioniert – Papie