2016-12-07 3 views
1

У меня есть следующее DataFrame с несколько индексированием:Применение функции на каждых 3 колонках (COLS: 1-3, 4-6, 7-9) в dataframe

enter image description here

Что является лучшим способ применения средней/сумма/функции Avg по каждой строке, для каждого из 3-х колонка: азбука, то: a1 b1 c1, а затем a2 b2 c2, так что результат будет: в примере, который я сделал сумма enter image description here

+0

Можете ли вы предоставить воспроизводимую версию вашего информационного блока? – MMF

ответ

1

Вы можете использовать groupby по numpy array и агрегировать функцию например sum:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

print (np.arange(len(df.columns)) // 3) 
[0 0 0 1 1 1] 

print (df.groupby(np.arange(len(df.columns)) // 3, axis=1).sum()) 
    0 1 
0 12 13 
1 15 10 
2 18 14 

 Смежные вопросы

  • Нет связанных вопросов^_^