Python заменить все значение столбца последним значением (из группы) - PullRequest
1 голос
/ 24 апреля 2020
A.       B.         C.
102    01/2020       0
102    02/2020       0
102    03/2020      50
101    01/2020       0
101    02/2020       0
101    03/2020      250

В pandas df я хочу заменить все 0 на последнее значение для каждого A (сгруппировав их по столбцу A), как показано ниже.

A.       B.         C.
102    01/2020      50
102    02/2020      50
102    03/2020      50
101    01/2020      250
101    02/2020      250
101    03/2020      250

Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 апреля 2020

Вы можете сделать с transform:

df['C.'] = df.groupby('A.')['C.'].transform('last')
2 голосов
/ 24 апреля 2020

Вы можете использовать replace

df['C.'] = df['C.'].replace(to_replace=0, method='bfill')
df
    A.       B.   C.
0  102  01/2020   50
1  102  02/2020   50
2  102  03/2020   50
3  101  01/2020  250
4  101  02/2020  250
5  101  03/2020  250

Или использовать where и bfill

df['C.'] = df['C.'].where(df['C.'] != 0).bfill()
...