Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Группирование по N строк и суммирование

#python #pandas #dataframe #group_by


Имеется Excel с данными: ID Period (время) и значение к примеру D.

Tаблицу отсортировал как нужно, вот код:

import pandas as pd

data = pd.read_excel("C:\\...\\primer.xlsx")

table = pd.pivot_table (data, index="period", columns="id", fill_value=0)


Далее хочу выбрать period он в строку идет, там 1000+ строк, хочу разделить его к
примеру на 5 или 10: 

table["period"] = int[(table["period"]/5)*5]

print(table)


И тут ничего не выходит, вываливается ошибка о том, что не понимает, что такое Period.

Необходимо 1000+ строк разделить на 5, причем просуммировать значение с 0 по 5, с
5 по 10 и т.д. (просуммировать каждые 5 строк по порядку), ну и в конце вывести такую
же матрицу, только в 5 раз меньше по строкам, столбцы остаются как есть. Надеюсь понятно
объяснил.

Пример водных данных. 
Цветом выделил те 5 строк, которые нужно просуммировать и в итоге получить вместо
25 строк, только 5 строк.


    


Ответы

Ответ 1



Пример: In [5]: df = pd.DataFrame(np.arange(20*3).reshape(-1, 3), columns=list("abc")) In [6]: df Out[6]: a b c 0 0 1 2 1 3 4 5 2 6 7 8 3 9 10 11 4 12 13 14 5 15 16 17 6 18 19 20 7 21 22 23 8 24 25 26 9 27 28 29 10 30 31 32 11 33 34 35 12 36 37 38 13 39 40 41 14 42 43 44 15 45 46 47 16 48 49 50 17 51 52 53 18 54 55 56 19 57 58 59 группируем по три строки: In [7]: res = df.groupby(np.arange(len(df)) // 3).sum() результат: In [8]: res Out[8]: a b c 0 9 12 15 1 36 39 42 2 63 66 69 3 90 93 96 4 117 120 123 5 144 147 150 6 111 113 115

Комментариев нет:

Отправить комментарий