У меня есть набор данных со столбцом «Self_Employed». В этих столбцах указаны значения «Да», «Нет» и «NaN». Я хочу заменить значения NaN значением, которое рассчитывается в calc (). Я попробовал некоторые методы, которые я нашел здесь, но я не мог найти тот, который был бы применим ко мне.
Вот мой код, я поместил то, что я пробовал, в комментариях.
# Handling missing data - Self_employed
SEyes = (df['Self_Employed']=='Yes').sum()
SEno = (df['Self_Employed']=='No').sum()
def calc():
rand_SE = randint(0,(SEno+SEyes))
if rand_SE > 81:
return 'No'
else:
return 'Yes'
> # df['Self_Employed'] = df['Self_Employed'].fillna(randint(0,100))
> #df['Self_Employed'].isnull().apply(lambda v: calc())
>
>
> # df[df['Self_Employed'].isnull()] = df[df['Self_Employed'].isnull()].apply(lambda v: calc())
> # df[df['Self_Employed']]
>
> # df_nan['Self_Employed'] = df_nan['Self_Employed'].isnull().apply(lambda v: calc())
> # df_nan
>
> # for i in range(df['Self_Employed'].isnull().sum()):
> # print(df.Self_Employed[i]
df[df['Self_Employed'].isnull()] = df[df['Self_Employed'].isnull()].apply(lambda v: calc())
df
теперь строка, где я пробовал это с df_nan, кажется, работает, но тогда у меня есть отдельный набор только с предыдущими пропущенными значениями, но я хочу заполнить пропущенные значения во всем наборе данных. В последнем ряду я получаю сообщение об ошибке, я ссылаюсь на скриншот.
Вы понимаете мою проблему и если да, можете ли вы помочь?
Это набор только с теми строками, где Self_Employed равен NaN
Это оригинальный набор данных
Это ошибка