Как сложить цены за 1 час до 1 часа после каждого ряда, Панды

Просто напишите "hello world"; и нажмите enter ... он вернет "hello world" вместо undefined, поэтому не отображается undefined. console.log возвращает undefined, а также записывает аргументы в консоль, чтобы получить несколько сообщений.

1
задан get data 28 February 2019 в 08:49
поделиться

1 ответ

Вы можете groupby date и использовать transform , чтобы добавить столбец с sum цен на группу:

df['cumsprice'] = df.groupby('date').price.transform('sum')

   id  price  hour  minute   date  cumsprice
0   1     10     3       7  01/11         19
1   2      4     3      59  01/11         19
2   3      5     2      21  01/11         19
3   4      6     3      47  02/09          6
4   5      1     4      28  02/04          1

Обновление

Обновление после изменения ожидаемого решения. Чтобы сгруппировать по последовательным датам, которые равны, вы можете создать собственный группировщик, проверив, на каких строках изменяются даты, и взяв cumsum из них:

g = df.date.ne(df.date.shift(1))
df['cumprice'] = df.groupby(g.cumsum()).price.transform('sum')    

print(df)
   id  price  hour  minute   date  cumsprice  cumprice
0   1     10     3       7  01/11         31      19.0
1   2      4     3      59  01/11         31      19.0
2   3      5     2      21  01/11         31      19.0
3   4      6     3      47  02/09          6       6.0
4   5      1     4      28  02/04          1       1.0
5   6     12     5      50  01/11         31      12.0
0
ответ дан yatu 28 February 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: