Pandas метод заполнения относительно другого столбца - PullRequest
0 голосов
/ 03 августа 2020

В моем наборе данных есть два столбца. Один - штат , другой - город . В столбце состояния нет значений NaN. Но в столбце city присутствует слишком много значений NaN.

Предположим, у меня есть одно значение точки данных штата - «Вашингтон» и в той же строке NaN значение в city . Я хочу заполнить все значения NaN city в штате Вашингтон с помощью Seattle

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

при условии df

    STATE   CITY
0  StateA  CityA
1  StateB  CityB
2  StateA    NaN
3  StateB    NaN

заполнение df относительно города штата по умолчанию

mapping = {"StateA": "city of state A","StateB": "city of state B"} #state default city mapping
df['CITY'] = df['STATE'].combine(df['CITY'], lambda state,city :  mapping[state] if pd.isnull(city) else city)

вывод:

    STATE             CITY
0  StateA            CityA
1  StateB            CityB
2  StateA  city of state A
3  StateB  city of state B
0 голосов
/ 04 августа 2020

Предположим, что имя вашего набора данных - df

Первое, что вам нужно сделать, это найти данные, имеющие состояние как Вашингтон , и заполнить их, используя метод fillna() и сохраните его в некоторой переменной (скажем, fill)

fill= df.loc[df['state']=='Washington'].fillna(method='ffill')

На следующем шаге вы снова будете использовать метод fillna() в исходном фрейме данных для заполнения всех значений, имеющих штат как Вашингтон

df.fillna(value=fill)

Надеюсь, этот ответ поможет:}

...