Python Pandas: создать новый столбец, который вычисляет промежуточный итог всех ячеек над этой строкой в ​​определенном столбце. - PullRequest
0 голосов
/ 04 ноября 2018

Извините за, казалось бы, запутанный заголовок. Задача будет очень простой, но я в тупике и мне нужна помощь.

Фрейм данных, который у меня сейчас есть:

New_ID  STATE   MEAN
0   1   Lagos   7166.101571
1   2   Rivers  2464.065846
2   3   Oyo     1974.699365
3   4   Akwa    1839.126698
4   5   Kano    1757.642462

Я хочу создать новый столбец, который в строке i будет вычислять df [: i, 'MEAN']. Sum () / df ['MEAN']. Sum ()

Например, для фрейма данных:

    ID  MEAN
0   1.0 5
1   2.0 10
2   3.0 15
3   4.0 30
4   5.0 40

Мой желаемый вывод:

     ID MEAN SUBTOTAL
0   1.0 5   0.05
1   2.0 10  0.10
2   3.0 15  0.30
3   4.0 30  0.60
4   5.0 40  1.00

Я пытался

df1['SUbTotal'] = df1.loc[:df1['New_ID'], 'MEAN']/df1['MEAN'].sum()

но там написано:

Name: New_ID, dtype: int32' is an invalid key 

Спасибо за ваше время заранее

1 Ответ

0 голосов
/ 04 ноября 2018

Это должно сделать это, похоже, что вы ищете cumsum:

df['SUBTOTAL'] = df.MEAN.cumsum() / df.MEAN.sum()

>>> df
    ID  MEAN  SUBTOTAL
0  1.0     5      0.05
1  2.0    10      0.15
2  3.0    15      0.30
3  4.0    30      0.60
4  5.0    40      1.00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...