Как суммировать фрейм данных в pandas для более чем 5 - PullRequest
4 голосов
/ 02 августа 2020

в столбце «Мои дни», если мое число больше 5, я хочу суммировать этот столбец

Ввод:

Days  files 
1      10
3      20
4      30
5      40
6      50

Требуемый вывод:

Days  files 
1      10
3      20
4      30
5+     90

Ответы [ 2 ]

6 голосов
/ 02 августа 2020

Вы можете попробовать series.clip обрезать верхнюю границу в серии, затем выполнить groupby и sum:

out = df['files'].groupby(df['Days'].clip(upper=5)).sum().reset_index()
print(out)

  Days  files
0    1     10
1    3     20
2    4     30
3    5     90

Если вы действительно хотите изменить что-либо выше 5 в тип str, вы можете jst замените 5, используя приведенный выше лог c:

out = df['files'].groupby(df['Days'].clip(upper=5).replace(5,'5+')).sum().reset_index()
print(out)

  Days  files
0    1     10
1    3     20
2    4     30
3   5+     90
2 голосов
/ 02 августа 2020

Я бы сделал это так:

above = df.files[df.Days >= 5].sum()
df[df.Days < 5].append({'Days': '5+', 'files': above}, ignore_index=True)

Получится:

  Days  files
0    1     10
1    3     20
2    4     30
3   5+     90
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...