При очистке данных я часто сталкиваюсь со следующей распространенной проблемой: есть несколько более общих категорий (скажем, топ-10 жанров фильмов), а также множество других, которых мало.Обычная практика здесь заключается в объединении разреженных жанров, например, в «Другое».
Легко сделать, когда не так много разреженных категорий:
# Join bungalows as they are sparse classes into 1
df.property_type.replace(['Terraced bungalow','Detached bungalow', 'Semi-detached bungalow'], 'Bungalow', inplace=True)
, но если, например, у меня есть набор данных фильмовс большинством фильмов, созданных, скажем, 8 большими студиями, и я хотел бы объединить все остальное в «другой» студии, имеет смысл получить топ 8 студий:
top_8_list = []
top_8 = df.studio.value_counts().head(8)
for key, value in top_8.iteritems():
top_8_list.append(key)
top_8_list
top_8_list
['Universal Pictures',
'Warner Bros.',
'Paramount Pictures',
'Twentieth Century Fox Film Corporation',
'New Line Cinema',
'Columbia Pictures Corporation',
'Touchstone Pictures',
'Columbia Pictures']
, а затем сделать что-то вроде
заменить студию, в которой студия не входит в топ-8, на "прочее"
, поэтому вопрос, если кто-нибудь знает какое-нибудь элегантное решение для панд для этого?Это очень распространенная задача очистки данных