Python: добавьте каждые 3 строки в кадре данных - PullRequest
0 голосов
/ 11 мая 2019

У меня есть фрейм данных с именем df, например:

index   a   b   c   d   e   f   g 
1       1   2   3   4   5   6   7   
2       2   3   4   5   6   7   8   
3       3   4   5   6   7   8   9   
4       4   5   6   7   8   9   0  
5       5   6   7   8   9   0   1   
6       6   7   8   9   0   1   2   
7       7   8   9   0   1   2   3   
8       8   9   0   1   2   3   4   

Я пытаюсь сохранить первые 2 строки и объединить каждые 3 строки после 2-й строки и сложить значения. Результат должен быть таким:

Index   a   b   c   d   e   f   g
1       1   2   3   4   5   6   7
2       2   3   4   5   6   7   8
3       12  15  18  21  24  17  10
4       21  24  17  10  3   6   9

Например, col ['a'], индекс 3 = 12, что составляет 3 + 4 + 5

Я могу добавить их только по одной строке за раз. есть ли какой-нибудь итеративный способ их сложения?

1 Ответ

1 голос
/ 11 мая 2019

Использование .rolling() и выбор каждой третьей строки:

df1 = df[:2]
df1 = df1.append(df[2:].rolling(3).sum().dropna()[::3]).reset_index(drop=True)

# increase index by 1
df1.set_index(np.arange(len(df1))+1)

    a       b       c       d       e       f       g
1   1.0     2.0     3.0     4.0     5.0     6.0     7.0
2   2.0     3.0     4.0     5.0     6.0     7.0     8.0
3   12.0    15.0    18.0    21.0    24.0    17.0    10.0
4   21.0    24.0    17.0    10.0    3.0     6.0     9.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...