Счёт упоминаний уникальных значений в датафрейме
Считаю кол-во упоминаний уникальных значений в столбце следующим образом:
вывожу уникальные значения, функция юник
df["Столбец_1"].unique()
считаю уникальные значения в столбце датафрейма
data= Counter(df["Столбец_1"])
Чтобы посчитать кол-во упоминаний всех уникальных значений во всех столбцах датафрейма, приходится вручную их перебирать. А есть ли способ так же быстро сделать данную операцию для всего датафрейма? Для всех столбцов?
Ответы (2 шт):
Автор решения: splash58
→ Ссылка
df = pd.DataFrame({'col1': ['a', 'b', 'a', 'a'], 'col2': ['c', 'c', 'd', 'd']})
print(df.apply(lambda x: x.value_counts()).T.stack())
даст результат
col1 a 3.0
b 1.0
col2 c 2.0
d 2.0
dtype: float64
и, на всякий случай, узнать сколько значений d во второй колонке
print(df1['col2', 'd']) # 2
Автор решения: SergFSM
→ Ссылка
судя по тому что вы используете Counter, результат вам нужен в виде словаря. если это так, то можно сделать что-то вроде этого:
df = pd.DataFrame({'col1': ['a', 'b', 'a', 'a'],
'col2': ['c', 'c', 'd', 'd']})
df.apply(lambda x: x.value_counts().to_dict()).to_dict()
>>>
'''
{'col1': {'a': 3, 'b': 1},
'col2': {'c': 2, 'd': 2}}