заполнить значения NaN (столбец 1) в существующем столбце на основе другого столбца (столбец 2), используя pandas dataframe python - PullRequest
0 голосов
/ 03 октября 2019

У меня есть 2 области столбцов и пин-код

Area Pincode 
ABC - 1234 
XYZ - 4118 
qwe - 1023 
rty - 1234 
XYZ - ? 
rty - ? 
qwe - ? 
ABC - ?

, поэтому у меня есть несколько областей, и я хочу заполнить столбец пин-кода на основе области, поскольку я вижу, что доступны области и пин-коды, но я заметил, что некоторые пин-кодыотсутствует, хотя область та же. Спасибо!

df4.loc[df4.pins.isnull(),'pins'] = df4.loc[df4.pins.isnull(),'Area'].map(df4.loc[df4.pins.notnull()].set_index('Area')['pins'])

, но это не работает

1 Ответ

0 голосов
/ 03 октября 2019

это должно работать, трудно сказать без должного визуального представления ваших данных.

df.loc[df['pcode'].isnull()==True,'pcode'] = df['Unnnamed:']

IIUC, вы можете использовать fillna с groupby и transform, чтобы получить ваш результат

, используя ваши фиктивные данные выше: (я заменил ваше '?' На истинные нулевые значения)

   ABC  1234
0  XYZ   4118
1  qwe   1023
2  rty   1234
3  XYZ    NaN
4  rty    NaN
5  qwe    NaN


df['1234'] = df['1234'].fillna(df.groupby('ABC')['1234'].transform('first'))
print(df)
   ABC   1234
0  XYZ   4118
1  qwe   1023
2  rty   1234
3  XYZ   4118
4  rty   1234
5  qwe   1023
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...