Заполнение столбцов в фрейме данных pandas, содержащих N пустых значений, полностью нулями

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Возьмите строку типа:

 df.dropna(thresh=2)
  

Вместо того, чтобы удалять столбец на основе числа пустых значений, я хочу заполнить весь этот столбец нулями.

Таким образом, столбцы, которые имеют только одно пустое значение, будут нетронуты, в то время как столбцы с 2 пустыми значениями будут полностью заменены нулями.

Ответ №1:

Выполните итерацию по столбцам, и если количество значений NA больше 2, замените столбцы нулями, иначе сохраните столбец как есть:

 for col in df.columns:
     df[col] = 0 if df[col].isna().sum() > 2 else df[col]
  

Ответ №2:

попробуйте это

     df=pd.DataFrame({"col1":[1,2,3,4,5,7],"col2":[1,2,3,4,np.NaN,2],"col3":[1,2,3,np.NaN,np.NaN,np.NaN]})
    temp=(((df!=df).sum())>=2)#nothing much is happening here its simply just a filter for nan elements
    temp1=df.columns
    for x in range(len(temp)):
      if temp[x]:
          df[temp1[x]]=0
    df
  

вывод:

      col1   col2    col3
    0   1   1.0     0
    1   2   2.0     0
    2   3   3.0     0
    3   4   4.0     0
    4   5   NaN     0
    5   7   2.0     0