Resumen de preprocesamiento de datos e ingeniería de funciones: valores perdidos (2)

Organizado según los cursos de los platos, fácil de recordar y entender.

La ubicación del código es la siguiente:

valor que falta

Una parte muy importante del preprocesamiento de datos es tratar con los valores faltantes.

# 处理缺失值impute.SimpleImputer
import pandas as pd
data = pd.read_csv("Narrativedata.csv",index_col = 0)
data.head()

# 我们通过info()可以观察到 Age 和 Embarked的存在缺失值
data.info()

"""
<class 'pandas.core.frame.DataFrame'>
Int64Index: 891 entries, 0 to 890
Data columns (total 4 columns):
Age         714 non-null float64
Sex         891 non-null object
Embarked    889 non-null object
Survived    891 non-null object
dtypes: float64(1), object(3)
memory usage: 34.8+ KB
"""
复制代码

Aquí usamos datos extraídos del Titanic, que tiene tres características, una numérica, dos caracteres y la etiqueta también es un carácter. A partir de aquí, usaremos estos datos como ejemplo, para que pueda familiarizarse gradualmente con las diversas formas de preprocesamiento de datos en sklearn.

imputar.SimpleImputer

clase sklearn.imputar.SimpleImputer ( missing_values=nan, strategy='promedio', fill_value=Ninguno, detallado=0,copiar=Verdadero)

parámetro
parámetro Significado y entrada
valores faltantes Dígale a SimpleImputer cómo se ven los valores faltantes en los datos, valor nulo predeterminado np.nan
estrategia Nuestra estrategia para imputar valores faltantes, media predeterminada. Escriba "mean" para completar con la media (solo disponible para funciones numéricas) Escriba "median" para completar con la mediana (solo disponible para funciones numéricas) Escriba "most_frequent" para completar con el modo (disponible para funciones numéricas y de caracteres) Ingrese "constante " significa que consulte el valor en el parámetro "fill_value" (disponible tanto para características numéricas como de caracteres)
valor_de_relleno Disponible cuando la estrategia del parámetro es "constante", puede ingresar una cadena o un número para indicar el valor a completar, generalmente 0
dupdo El valor predeterminado es Verdadero, que creará una copia de la matriz de funciones; de lo contrario, completará los valores faltantes en la matriz de funciones original.
  • Nuestros datos de entrada deben ser bidimensionales, remodelar (-1,1) aumenta la dimensión
# 在这reshape的目的是因为我们的fit必须是二维的数据
age = data.loc[:,"Age"].values.reshape(-1,1)
age[:20]

"""
array([[22.],
       [38.],
       [26.],
       [35.],
       [35.],
       [nan],
       [54.],
       [ 2.],
       [27.],
       [14.],
       [ 4.],
       [58.],
       [20.],
       [39.],
       [14.],
       [55.],
       [ 2.],
       [nan],
       [31.],
       [nan]])
"""
复制代码
  • Relleno con 0, mediana, media
from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer()   # 默认使用平均值进行填补
imp_median = SimpleImputer(strategy="median")   # 中值填补 
imp_0 = SimpleImputer(strategy="constant",fill_value=0)  # 使用常数0进行填补

imp_mean = imp_mean.fit_transform(age)
imp_median = imp_median.fit_transform(age)
imp_0 = imp_0.fit_transform(age)

imp_mean[:20]
"""
array([[22.        ],
       [38.        ],
       [26.        ],
       [35.        ],
       [35.        ],
       [29.69911765],
       [54.        ],
       [ 2.        ],
       [27.        ],
       [14.        ],
       [ 4.        ],
       [58.        ],
       [20.        ],
       [39.        ],
       [14.        ],
       [55.        ],
       [ 2.        ],
       [29.69911765],
       [31.        ],
       [29.69911765]])
"""
# 数据不进行展示了
imp_median[:20]

imp_0[:20]
复制代码
  • llenar
# 进行填补
data.loc[:,"Age"] = imp_median
data.info()
复制代码
  • Rellenar embarcado con modo
# 使用众数填充Embarked
Embarked = data.loc[:,"Embarked"].values.reshape(-1,1)
imp_mode = SimpleImputer(strategy = "most_frequent")
data.loc[:,"Embarked"] = imp_mode.fit_transform(Embarked)
data.info()
复制代码
Rellenar con Pandas y Numpy es realmente más fácil
  • Usa principalmente fill_na y drop_na
# 我们可以使用pandas和numpy对数据进行填充
import pandas as pd
data = pd.read_csv("Narrativedata.csv",index_col = 0)
data.head()

# 使用fillna平均值进行填充Age
data.loc[:,"Age"] = data.loc[:,"Age"].fillna(data.loc[:,"Age"].mean())

#.dropna(axis=0)删除所有有缺失值的行,.dropna(axis=1)删除所有有缺失值的列
data.dropna(axis=0,inplace=True)
data.info()
复制代码

Supongo que te gusta

Origin juejin.im/post/7086646220331941896
Recomendado
Clasificación