#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Всем привет, я пытаюсь сгруппировать данные по дате, а затем суммировать второй столбец, но я не получаю информацию, которая мне нужна
Это мои данные:
|Day |Messages|Codes |
|----------|--------|-------|
|2020-08-25|647 |34234 |
|2020-08-25|6,396 |3425645|
|2020-08-25|16,615 |64564 |
|2020-08-26|16,066 |45654 |
|2020-08-26|4,716 |343234 |
|2020-08-26|748 |35455 |
|2020-08-28|571 |343423 |
|2020-08-28|14 |3423 |
|2020-08-28|1 |SDAS2 |
Вывод, который мне нужен, выглядит следующим образом:
|Day |Messages|Codes |
|----------|--------|-------|
|2020-08-25|23658 |34234 |
| | |3425645|
| | |64564 |
|2020-08-26|21530 |45654 |
| | |343234 |
| | |35455 |
|2020-08-28|586 |343423 |
| | |3423 |
| | |SDAS2 |
Сначала нужно сгруппировать по дням, а затем суммировать столбец сообщений, я пробовал со следующими строками, но работает не так, как я ожидал: c
#1
read = pd.read_csv('data.csv')
read.groupby(['Day'])
read.groupby(['Messages']).sum()
read.to_html('test.html',index=False)
#2
read = pd.read_csv('data.csv')
group_day = read.groupby(['Day','Messages']).sum()
group_day.to_html('test.html')
#3
read = pd.read_csv('data.csv')
read.groupby('Day')[['Messages','ShortCode']].sum()
read.to_html('test.html',index=False)
Комментарии:
1.
read.assign(Messages=read.groupby("Day")["Messages"].transform("sum"))
?2. почему некоторые столбцы не отображаются в ожидаемом выводе? Но
Codes
столбцы все еще имеют значения в этих строках
Ответ №1:
Это может приблизить вас к тому, что вам нужно:
read.groupby(['Day','Messages','ShortCode']).size().reset_index().set_index(['Day','Messages'])