Группировка и подсчет количества по нескольким колонкам в dataframe pandas
столкнулся с проблемой группировки датафрейма по нескольким столбцам. Пытаюсь методом groupby сгруппировать столбцы, но он дропает строки с пустым значением
df = pd.DataFrame(pd.read_excel('data.xlsx'))
df = df.groupby(['Имя'])['число'].value_counts()
df
Out[64]:
Имя число
Ваня любимое 2
Не любимое 1
Ваня 4 любимое 2
Не любимое 1
Виталя любимое 2
Не любимое 1
Виталя254 любимое 2
Не любимое 1
Женя любимое 2
Не любимое 1
Женя3 любимое 2
Не любимое 1
Катя любимое 2
Не любимое 1
Катя1 любимое 2
Не любимое 1
Name: число, dtype: int64
Нужный результат должен быть такой, чтобы считалось количество значений двух столбцов "знчение1" и "значение2":
df
Out[64]:
Имя число
Ваня любимое 4
Не любимое 1
Ваня 4 любимое 4
Не любимое 1
Виталя любимое 4
Не любимое 1
Виталя254 любимое 4
Не любимое 1
Женя любимое 4
Не любимое 1
Женя3 любимое 4
Не любимое 1
Катя любимое 4
Не любимое 1
Катя1 любимое 4
Не любимое 1
Name: число, dtype: int64
Ссылка на таблицу
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Похоже, это оно :)
df = pd.read_excel('data.xlsx')
df1 = df.groupby(['Имя', 'число'])[['значение1','значение2']].count().sum(axis=1)
print(df1)
Имя число
Ваня Не любимое 1
любимое 4
Ваня 4 Не любимое 1
любимое 4
Виталя Не любимое 1
любимое 4
Виталя254 Не любимое 1
любимое 4
Женя Не любимое 1
любимое 4
Женя3 Не любимое 1
любимое 4
Катя Не любимое 1
любимое 4
Катя1 Не любимое 1
любимое 4
dtype: int64