Как перехватить пустые данные из фрейма данных?

У меня есть фрейм данных с пропущенными значениями (даже не Nan, там просто ничего). Я хочу сообщить недостающую информацию.

    S02Q18b_01  S02Q18b_02  S02Q18b_05  S02Q18b_06  S02Q18b_07  S02Q18b_08  S02Q18b_09
0                           
1                           
2   -1      0           0   
3   -1                      
4                           
... ... ... ... ... ... ... ...
4570    -1  -1  1       -1      1
4571    -1  1   1   0   -1  -1  1
4572    -1  1   0   1   -1  -1  1
4573    -1  -1  1   -1  -1  -1  1
4574    0   0   0   0   0   0   

На самом деле missing = np.where(df[filter_col].applymap(lambda x: x == '')), отправьте мне обратно:

(array([], dtype=int64), array([], dtype=int64))

Обновите

с .isnull().sum(min_count=1)

Я также пробовал:

miss_values_count = df[filter_col].isnull().sum(min_count=1)
miss_values_count = miss_values_count[miss_values_count != 0]

print(f"Number of columns with missing values: {miss_values_count.shape[0]}")
if miss_values_count.shape[0]:
    print("Null value count per column: ")
    for name, miss_vals in miss_values_count.items():
        p = miss_vals > 1
        print(f"  - For column name '{name}' there are{'n' if p else ''} "
              f"{miss_vals} ({100*(miss_vals/df[filter_col].size)}) missing values{'s' if p else ''}.")

Но это дает мне Number of columns with missing values: 0

с fillna.(np.nan)

Попробуйте решение Рубиалеса Альберто , но оно не заполняет пропущенные значения:

introducir la descripción de la imagen aquí

1
задан 28.11.2019, 12:51
1 ответ

Попытайся делать это, будучи "dataframe" твои данные.

import numpy as np
import pandas as pd

dataframe.fillna(np.nan, inplace=True) #rellenamos todos los valores que faltan con NaN
dataframe.isna().sum() #Sumamos los NaN de cada columna

EDICIГ “N 2

Vale видя твой update, уже sГ© то, что происходит, то, что он перемещает, состоит в том, что эти ячейки - string с местом или без чего-либо. Чтобы это менять ты должен делать следующее:

#realizamos las operaciones para cambiar las celdas vacias o con espacios a nan
dataframe = dataframe.replace('\s+', np.nan, regex=True).replace('', np.nan)

#sumamos para saber los números de nan por columnas
dataframe.isna().sum()

то, что мы делаем в первый, повторно нравится состоит в том, чтобы заменять все ячейки, у которых есть место или mГЎs из-за, nan. И с секунда повторно нравится мы заменяем все ячейки, которые strings пустые из-за nan.

0
ответ дан 01.12.2019, 10:45
  • 1
    Большое спасибо из-за Вашей попытки. Однако, он не наполняет ячейки vací эксперт:/ – IggyPass 28.11.2019, 12:01
  • 2
    Я увидел твой actualizació n в вопрос и уже sé то, что происходит, протестируй то, что появляется вслед за edició n 2 – Rubiales Alberto 28.11.2019, 14:04
  • 3
    Confí rmame, если я ты функционирую или нет? @IggyPass – Rubiales Alberto 29.11.2019, 10:47