новых для панды Я хочу, чтобы выполнить что-то похожее на Reduce number of levels for large categorical variables (биннинг категориальных переменных для того, чтобы уменьшить их уровни) штрафа в RПанды уменьшить количество категориальных переменных
DTsetlvls <- function(x, newl)
setattr(x, "levels", c(setdiff(levels(x), newl), rep("other", length(newl))))
Моего dataframe Следующий код работает:
df = pd.DataFrame({'Color': 'Red Red Blue'.split(),
'Value': [100, 150, 50]})
df['Counts'] = df.groupby('Color')['Value'].transform('count')
print (df)
Color Value Counts
0 Red 100 2
1 Red 150 2
2 Blue 50 1
я вручную создал бы агрегатный столбец, а затем, основываясь на том, что маркировать реже группы например, «синий» как единая «другая» группа. Но по сравнению с кратким R-кодом это кажется неуклюжим. Какой был бы правильный подход здесь?
Возможные дублировать [Как группировать «оставшиеся» результаты за пределами Top N в «O thers "с пандами] (http://stackoverflow.com/questions/19835746/how-to-group-remaining-results-beyond-top-n-into-others-with-pandas) –