Можно использовать `mask` или` where` в pandas для всего кадра данных, но изменить только один столбец - PullRequest
0 голосов
/ 12 апреля 2020

Когда метод соединяется с pandas фреймами данных, часто бывает необходимо замаскировать один конкретный столбец, а не целый фрейм данных.

Документация для pandas содержит mask или where для всего кадра данных или серии .

Есть ли какой-нибудь способ передать mask всему фрейму данных, но изменить только один столбец?

В качестве примера, скажем, у нас есть данные:

import pandas as pd

df = pd.DataFrame({'A' : [0,1,2], 'B' : [3,4,5]})

Теперь мы можем либо сделать df.mask(df > 0, 2), и Весь массив данных будет:

|A | B | 
|--|---|
|0 | 2 |
|2 | 2 |
|2 | 2 |

Или я могу сделать df.A.mask(df.A >0,2), что даст мне:

|A|
|0|
|2|
|2|

Есть ли способ сделать это?:

df.mask(df.A > 0, 2) 

|A | B|
|0 | 3|
|2 | 4|
|2 | 5|

1 Ответ

0 голосов
/ 13 апреля 2020

Вы можете заменить указанный столбец, используя `` ìnplace = True``` в функции. То же, что и для where.

df.A.mask(df.A>0, 2, inplace=True)
...