Заменить данные столбцов их сгруппированными значениями - PullRequest
0 голосов
/ 18 февраля 2019

Вот данные:

import pandas as pd
df = pd.DataFrame({
 'A' : ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo','foo','bar','bar','foo','bar'],
 'B' : ['one', 'one', 'two', 'two','two', 'two', 'one', 'two','one','two','one','two','two'],
 '2018-09-28' : np.random.randn(13), 
 '2018-10-06' : np.random.randn(13),
 '2018-10-13' : np.random.randn(13)
            })

df.index = ['se0','se1','se2','se3','se4','se5','se6','se7',"se8",'se9','se10','se11','se12']
df.index.name = 'SE'

Чтобы заменить все значения суммой значений группы 'B', я пытаюсь это сделать:

df_new=df.iloc[:,1:].apply(lambda x : x.groupby('B').sum())

Но, очевидно, это не удалось,Вы можете мне помочь?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете проверить с transform

df.drop('A',1).groupby('B').transform('sum')
Out[121]: 
      2018-09-28  2018-10-06  2018-10-13
SE                                      
se0     0.766577   -2.250729    1.056958
se1     0.766577   -2.250729    1.056958
se2     2.050151   -1.908386   -1.318890
se3     2.050151   -1.908386   -1.318890
se4     2.050151   -1.908386   -1.318890
se5     2.050151   -1.908386   -1.318890
se6     0.766577   -2.250729    1.056958
se7     2.050151   -1.908386   -1.318890
se8     0.766577   -2.250729    1.056958
se9     2.050151   -1.908386   -1.318890
se10    0.766577   -2.250729    1.056958
se11    2.050151   -1.908386   -1.318890
se12    2.050151   -1.908386   -1.318890
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...