Поиск вероятностей каждого значения во всех категориальных столбцах в кадре данныхPython

Программы на Python
Anonymous
Поиск вероятностей каждого значения во всех категориальных столбцах в кадре данных

Сообщение Anonymous »

Мой вопрос почти идентичен вопросу «Нахождение частоты каждого значения во всех категориальных столбцах в кадре данных», но мне нужны вероятности, а не частоты. Мы можем использовать тот же пример фрейма данных:

Код: Выделить всё

df = pd.DataFrame(
{'sub_code': ['CSE01', 'CSE01', 'CSE01', 'CSE02', 'CSE03', 'CSE04',
'CSE05', 'CSE06'],
'stud_level': [101, 101, 101, 101, 101, 101, 101, 101],
'grade': ['STA', 'STA', 'PSA', 'STA', 'STA', 'SSA', 'PSA', 'QSA']})
Я попытался адаптировать этот ответ следующим образом:

Код: Выделить всё

out = (df.select_dtypes(object)
.melt(var_name="Variable", value_name="Class")
.value_counts(dropna=False, normalize=True)
.reset_index(name="Probability")
.sort_values(by=['Variable', 'Class'], ascending=[True, True])
.reset_index(drop=True))
Однако код не работает, поскольку сумма вероятностей классов для каждой переменной не равна 1. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/786 ... a-datafram

Вернуться в «Python»