добавить новый столбец в измененный фрейм данных - PullRequest
0 голосов
/ 27 апреля 2018

Прямо сейчас у меня есть непакетированный фрейм данных, пришедший с чем-то вроде:

                    Total_People  Age_Period   Total_income
Sge_group  History
 2015-01      1          12         2015-01      98730.77
 2015-02      1          24         2015-02      41476.93
              2          33         2015-02      84435.25
 2015-03      1          101        2015-03      40630.45
              2          99         2015-03      28969.07
              3          22         2015-03      83927.98

и когда я снимаю стэк как

SGE = SGE['Total_income'].unstack(0)

это производит эту таблицу, которая ожидалась:

sge_group   2015-01    2015-02    2013-03    
History
------------------------------------------
   1        98730.77   41476.93   40630.45
   2             nan   84435.25   28969.07
   3             nan        nan   32678.95

Но я хочу знать, можно ли мне добавить один или два столбца внизу, где я могу сосчитать общее количество людей на каждую дату sge_group или общий доход одного из них, выглядя примерно так:

sge_group   2015-01    2015-02    2013-03    
History
------------------------------------------
   1        98730.77   41476.93   40630.45
   2             nan   84435.25   28969.07
   3             nan        nan   32678.95
Total_People      12         57        222
Total_Income       x          x          x

1 Ответ

0 голосов
/ 27 апреля 2018

Используйте groupby по первому уровню MultiIndex и агрегируйте по agg и sum, транспонируйте и сохраняйте append в оригинал DataFrame:

d = SGE['Total_income'].unstack(0)
print (d)
Sge_group   2015-01   2015-02   2015-03
History                                
1          98730.77  41476.93  40630.45
2               NaN  84435.25  28969.07
3               NaN       NaN  83927.98

df = SGE.groupby(level=0)['Total_People','Total_income'].sum().T
print (df)
Sge_group      2015-01    2015-02   2015-03
Total_People     12.00      57.00     222.0
Total_income  98730.77  125912.18  153527.5

SGE = d.append(df)
#alternative
#SGE = pd.concat([d, df])

print (SGE)
Sge_group      2015-01    2015-02    2015-03
1             98730.77   41476.93   40630.45
2                  NaN   84435.25   28969.07
3                  NaN        NaN   83927.98
Total_People     12.00      57.00     222.00
Total_income  98730.77  125912.18  153527.50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...