Ich habe eine Pandas DataFrame mit vielen "Objekt" Spalten, wo jeder von ihnen viele Werte (Modalitäten) enthält. Dann möchte ich nur die 10 häufigsten Modalitäten für jede Spalte behalten und die anderen durch 'Oth' ersetzen.Pandas: Ersetzen Sie mehrere Spaltenwerte durch eindeutigen Wert
Zum Beispiel, wenn ich eine Spalte ‚obj_col1‘, die 4 verschiedene Werte enthält:
obj_col1
'A'
'A'
'B'
'C'
'B'
'D'
und ich möchte 2 halten, die am häufigsten, hier ‚A‘ und ‚B‘, und ersetzen die Rest durch 'Oth':
obj_col2
'A'
'A'
'B'
'Oth'
'B'
'Oth'
ein Stück Code für eine Objektspalte (kategorische Variable) ist:
# sorted list of modalities of 'categ_var'
list_freq_modal = df['categ_var'].value_counts().index.tolist()
# replace all the modalities except the first 10 by 'Oth'
df['categ_var'].replace(list_freq_modal[10:],'Oth', inplace=True)
Aber I hav e ein Fehler: 'NoneType' Objekt hat kein Attribut 'any'
Haben Sie eine Idee, haben Sie es in optimaler Weise implementieren?
Beispieldaten bitte – Dark
Es scheint, Es gibt einige 'None' oder' NaN' Werte – jezrael