Замените NAN значением словаря для столбца в Pandas, используя Replace () или fillna () в Python - PullRequest
0 голосов
/ 25 апреля 2018

Я новичок в python, и я пытаюсь использовать функциональность fillna () и сталкиваюсь с некоторой проблемой.У меня есть DataFrame с именем Temp_Data_DF, который имеет два столбца, как показано ниже:

Temp_Data_DF:
A  B
1  NAN
2  NAN
3  {'KEY':1,'VALUE':2}

Я хочу заменить все NAN на значение Dict, и результирующий кадр данных должен выглядеть следующим образом:

Temp_Data_DF:
A  B
1  {'KEY':1,'VALUE':2}
2  {'KEY':1,'VALUE':2}
3  {'KEY':1,'VALUE':2}

Я пыталсяследующий код:

Bvalue = {'KEY':1,'VALUE':2}
Temp_Data_DF['B']=Temp_Data_DF['B'].fillna(Bvalue)

Но он не заменяет NAN желаемым значением. Любая помощь приветствуется.

Я ссылался на ссылку ниже.

Ссылка: Pandas dataframe fillna () только некоторые столбцы на месте

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете fillna от Series созданного dictionary:

Bvalue = {'KEY':10,'VALUE':20}
Temp_Data_DF['B']=Temp_Data_DF['B'].fillna(pd.Series([Bvalue], index=Temp_Data_DF.index))
print (Temp_Data_DF)
   A                         B
0  1  {'VALUE': 20, 'KEY': 10}
1  2  {'VALUE': 20, 'KEY': 10}
2  3    {'VALUE': 2, 'KEY': 1}

Деталь

print (pd.Series([Bvalue], index=Temp_Data_DF.index))
0    {'VALUE': 20, 'KEY': 10}
1    {'VALUE': 20, 'KEY': 10}
2    {'VALUE': 20, 'KEY': 10}
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...