Ich habe einen Datenrahmen df
, aus dem ich eine Spalte mpg
extrahieren.Gruppieren Sie Daten in Klassen mit numpy
Ich möchte Klassenlabel/Namen zu jeder Zeile basierend auf dem Wert mpg
hinzufügen.
Ich habe es mit
getanmpg = df.iloc[:,0]
median = np.percentile(mpg, q=50)
upper_quartile = np.percentile(mpg, q=75)
lower_quartile = np.percentile(mpg, q=25)
mpg_class = np.ones((num_observations, 1))
for i, element in enumerate(X):
mpg = element[0]
if mpg >= upper_quartile:
mpg_class[i] = 3
elif mpg >= median:
mpg_class[i] = 2
elif mpg >= lower_quartile:
mpg_class[i] = 1
else:
mpg_class[i] = 0
aber ich frage mich, ob es möglich ist, mit numpy
Weise intelligenter zu tun? Ich denke, es könnte möglich sein, es mit np.where
oder etwas in der Art zu tun.
Könnten Sie einen Beispielfall hinzufügen? Was ist 'X'? – Divakar
'X' ist ein Pandas Datenframe mit vielen Variablen, aber ich bin nur besorgt über den Vektor' mpg = df.iloc [:, 0] 'was nur die erste Spalte ist, die float Werte zwischen' 10.0' und '90.0 enthält '. – Jamgreen
Suchst du nach [Pandas 'Cut()?] (Http://pandas.pydata.org/pandas-docs/stable/generated/pandas.cut.html) –