Не удается заполнить значения nan в фрейме данных

#python #pandas #nan

#питон #панды #nan

Вопрос:

У меня есть два кадра данных с NAN, которые я не могу заполнить наиболее распространенными методами, я пробую их все сразу. Мой код таков:

 df_list=[df1,df2] for df in df_list:  df.fillna("NULL", inplace=True)  df.replace({"":"NULL"}, inplace=True)  df.replace({np.nan:"NULL"},inplace=True)  df.replace({pd.NA:"NULL"},inplace=True)  

df.replace({"":"NULL"}, inplace=True) это связано с тем, что некоторые пустые ячейки были действительно пустыми строками ( «» ), а не правильными nan.

Я знаю, что код не работает, потому что, когда я это делаю

 df1["A"].isnull().sum()  

результат не равен нулю.

Что я делаю не так?

Комментарии:

1. @havingaball на месте=True означает, что он сохранен

2. можете ли вы попробовать df1.loc[df1['a'].isnull()] и посмотреть, какие из них не заполнены?

Ответ №1:

Позволяет вашим df1 и df2 выглядеть следующим образом:

 df1 = pd.DataFrame([[1,1,1],[1,1,np.nan]]) df2 = pd.DataFrame([[np.nan,2,2],[2,2,2]]) df_list=[df1,df2]  for df in df_list:  df.fillna('NULL', inplace=True)  # Lets display if there is any null? print(df1.isnull().sum())  

И результат таков:

 0 0 1 0 2 0 dtype: int64  

И если в ваших dfs есть «пустые» ячейки вместо nan,

 df1 = pd.DataFrame([[1,1,1],[1,1,np.nan]]) df2 = pd.DataFrame([[np.nan,2,2],[2,2,2]]) df_list=[df1,df2] for df in df_list:  df.replace({'':'NULL'}, inplace=True) print(df1.isnull().sum())  

В результате получается:

 0 0 1 0 2 0 dtype: int64  

Результаты в обоих случаях-это все нули. Если это все еще не решает вашу проблему, вам следует указать свой dfs в вопросе.