La desinterés de datos no tiene que ser complicados. Industria Pitón Las frases individuales para la desinterés de datos pueden acelerar drásticamente su flujo de trabajo y prolongar expedito su código. Este blog destaca las frases de una ringlera de pitón más útil para la desinterés de datos, lo que lo ayuda a manejar títulos faltantes, duplicados, problemas de formato y más, todo en una ringlera de código. Exploraremos Pandas One-Finers para ejemplos de desinterés de datos adecuados para principiantes y profesionales. Incluso descubrirá bibliotecas esenciales de desinterés de datos de Python que hacen que el preprocesamiento sea valioso e intuitivo. ¿Agudo para expurgar sus datos más inteligentes, no más difícil? ¡Vamos a sumergirnos en frases compactas y poderosas!

¿Por qué es importante la desinterés de datos?
Antiguamente de sumergirse en el proceso de desinterés, es crucial entender por qué datos desinterés es esencia para el disección preciso y el enseñanza necesario. Los conjuntos de datos en bruto a menudo son desordenados, con títulos faltantes, duplicados y formatos inconsistentes que pueden distorsionar los resultados. La desinterés adecuada de datos garantiza una cojín confiable para el disección, mejorando el rendimiento del cálculo y las ideas.
Las frases individuales exploraremos encarar los problemas de datos comunes con un código reducido, lo que hace que el preprocesamiento de datos sea más rápido y más valioso. Veamos ahora los pasos que puede tomar para expurgar su conjunto de datos, transformándolo en una forma limpia y directorio para disección con facilidad.
Soluciones de una ringlera para la desinterés de datos
1. Manejo de datos faltantes usando dropna ()
Los conjuntos de datos del mundo auténtico rara vez son perfectos. Uno de los problemas más comunes que enfrentará son los títulos faltantes, ya sea oportuno a los errores en la compendio de datos, la fusión de conjuntos de datos o la entrada manual. A Dios gracias, Pandas proporciona un método simple pero poderoso para manejar esto: dropna ().
Pero Dropna () se puede usar con múltiples parámetros. Exploremos cómo aprovecharlo al mayor.
- eje
Especifica si soltar filas o columnas:
- eje = 0: Drop Filas (predeterminada)
- eje = 1: columnas de caída
Código:
df.dropna(axis=0) # Drops rows
df.dropna(axis=1) # Drops columns
- cómo
Define la condición para caer:
- Cómo = ‘Any’: Drop Si Desliz cualquier valía (predeterminado)
- cómo = ‘todos’: sol solo si faltan todos los títulos
Código:
df.dropna(how='any') # Drop if at least one NaN
df.dropna(how='all') # Drop only if all values are NaN
- trillar
Especifica el número reducido de títulos no NAN requeridos para prolongar la fila/columna.
Código:
df.dropna(thresh=3) # Keep rows with at least 3 non-NaN values
NOTA: No puede usar cómo y los umbres.
- subconjunto
Aplique la condición a columnas específicas (o filas si solo eje = 1).
Código:
df.dropna(subset=('col1', 'col2')) # Drop rows if NaN in col1 or col2#import csv
2. Manejo de datos faltantes usando Fillna ()
En emplazamiento de dejar caer los datos faltantes, puede satisfacer los vacíos utilizando el método Pandas ‘Fillna (). Esto es especialmente útil cuando desea imputar títulos en emplazamiento de perder datos.
Exploremos cómo usar Fillna () con diferentes parámetros.
- subconjunto
Especifica un valía esquilar, diccionario, en serie o calculado como media, mediana o modo para completar los datos faltantes.
Código:
df.fillna(0) # Fill all NaNs with 0
df.fillna({'col1': 0, 'col2': 99}) # Fill col1 with 0, col2 with 99
# Fill with mean, median, or mode of a column
df('col1').fillna(df('col1').mean(), inplace=True)
df('col2').fillna(df('col2').median(), inplace=True)
df('col3').fillna(df('col3').mode()(0), inplace=True) # Mode returns a Series
- método
Utilizado para propagar títulos no nulos con destino a delante o con destino a detrás:
- ‘ffill’ o ‘almohadilla’: relleno con destino a delante
- ‘bfill’ o ‘relleno’: relleno con destino a detrás
Código:
df.fillna(method='ffill') # Fill forward
df.fillna(method='bfill') # Fill backward
- eje
Elija la dirección para satisfacer:
- eje = 0: rellenar (en cuanto a la fila, predeterminado)
- eje = 1: satisfacer (en cuanto a columna)
Código:
df.fillna(method='ffill', axis=0) # Fill down
df.fillna(method='bfill', axis=1) # Fill across
- tope
Número mayor de NANS para completar un relleno con destino a delante/con destino a detrás.
Código:
df.fillna(method='ffill', limit=1) # Fill at most 1 NaN in a row/column#import csv
3. Eliminar títulos duplicados usando drop_dupplicates ()
Eliminar sin esfuerzo las filas duplicadas de su conjunto de datos con la función drop_dupplicates (), asegurando que sus datos estén limpios y únicos con solo una ringlera de código.
Exploremos cómo usar drop_dupliucates usando diferentes parámetros
- subconjunto
Especifica columnas específicas para inquirir duplicados.
- Valencia predeterminado: verifica todas las columnas
- Use una sola columna o directorio de columnas
Código:
df.drop_duplicates(subset="col1") # Check duplicates only in 'col1'
df.drop_duplicates(subset=('col1', 'col2')) # Check based on multiple columns
- prolongar
Determina qué duplicado para prolongar:
- ‘Primero’ (predeterminado): mantenga la primera ocurrencia
- ‘Last’: mantén el posterior ocurrencia
- Aparente: suelte todos los duplicados
Código:
df.drop_duplicates(keep='first') # Keep first duplicate
df.drop_duplicates(keep='last') # Keep last duplicate
df.drop_duplicates(keep=False) # Drop all duplicates
4. Reemplazo de títulos específicos usando reemplazar ()
Puede usar Reemplazar () para sustituir los títulos específicos en un ámbito o serie de datos.
Código:
# Replace a single value
df.replace(0, np.nan)
# Replace multiple values
df.replace((0, -1), np.nan)
# Replace with dictionary
df.replace({'A': {'old': 'new'}, 'B': {1: 100}})
# Replace in-place
df.replace('missing', np.nan, inplace=True)#import csv
5. Cambiar los tipos de datos usando ASTYPE ()
Cambiar el tipo de datos de una columna ayuda a avalar las operaciones adecuadas y la eficiencia de la memoria.
Código:
df('Age') = df('Age').astype(int) # Convert to integer
df('Price') = df('Price').astype(float) # Convert to float
df('Date') = pd.to_datetime(df('Date')) # Convert to datetime
6. Retazo el espacio en blanco de las cuerdas usando str.strip ()
En conjuntos de datos, los espacios liderados o finales no deseados en los títulos de las cadenas pueden causar problemas con la clasificación, la comparación o la agrupación. El método str.strip () elimina eficientemente estos espacios.
Código:
df('col').str.lstrip() # Removes leading spaces
df('col').str.rstrip() # Removes trailing spaces
df('col').str.strip() # Removes both leading & trailing
7. Agilidad y linaje de títulos de columna
Puede expurgar los títulos de la columna eliminando caracteres no deseados o extrayendo patrones específicos utilizando expresiones regulares.
Código:
# Remove punctuation
df('col') = df('col').str.replace(r'(^ws)', '', regex=True)
# Extract the username part before '@' in an email address
df('email_user') = df('email').str.extract(r'(^(^@)+)')
# Extract the 4-digit year from a date string
df('year') = df('date').str.extract(r'(d{4})')
# Extract the first hashtag from a tweet
df('hashtag') = df('tweet').str.extract(r'#(w+)')
# Extract phone numbers in the format 123-456-7890
df('phone') = df('contact').str.extract(r'(d{3}-d{3}-d{4})')
8. Mapeo y reemplazo de títulos
Puede mapear o reemplazar títulos específicos en una columna para estandarizar o trocar sus datos.
Código:
df('Gender') = df('Gender').map({'M': 'Male', 'F': 'Female'})
df('Rating') = df('Rating').map({1: 'Bad', 2: 'Okay', 3: 'Good'})
9. Manejo de títulos atípicos
Los títulos atípicos pueden distorsionar el disección estadístico y el rendimiento del maniquí. Aquí hay técnicas comunes para manejarlas:
- Método de puntaje Z
Código:
# Keep only numeric columns, remove rows where any z-score > 3
df = df((np.abs(stats.zscore(df.select_dtypes(include=(np.number)))) < 3).all(axis=1))
- Retazo de títulos atípicos (establecido a un rango)
Código:
df('col').clip(lower=df('col').quantile(0.05),upper=df('col').quantile(0.95))
10. Aplique una función usando lambda
Las funciones LAMBDA se usan con APLICE () para trocar o manipular datos en la columna rápidamente. La función Lambda actúa como la transformación, mientras que aplica () la aplica en toda la columna.
Código:
df('col') = df('col').apply(lambda x: x.strip().lower()) # Removes extra spaces and converts text to lowercase
Manifiesto del problema
Ahora que ha aprendido sobre estas frases de Python, veamos la afirmación del problema e intentemos resolverla. Se le otorga un conjunto de datos de clientes de una plataforma minorista en ringlera. Los datos tienen problemas como:
- Títulos faltantes en columnas como correo electrónico, época, tweet y teléfono.
- Entradas duplicadas (por ejemplo, el mismo nombre y correo electrónico).
- Formato inconsistente (por ejemplo, Whitpace in Name, «Falts» como una condena).
- Problemas de tipo de datos (por ejemplo, Join_Date con títulos no válidos).
- Aterrones atípicos en época y compra_amount.
- Datos de texto que requieren desinterés y linaje utilizando regex (por ejemplo, extrayendo hashtags de tweet, nombres de afortunado del correo electrónico).
Su tarea es demostrar cómo expurgar este conjunto de datos.
Opción
Para la posibilidad completa, consulte esto Cuaderno de Google Colab. Le pauta a través de cada paso requerido para expurgar el conjunto de datos de modo efectiva utilizando Python y Pandas.
Siga las instrucciones a continuación para expurgar su conjunto de datos
- Drop filas donde faltan todos los títulos
df.dropna(how='all', inplace=True)
- Estandarizar el texto del grabador de posición como ‘faltante’ o ‘no adecuado’ para NAN
df.replace(('missing', 'not available', 'NaN'), np.nan, inplace=True)
- Guatar los títulos faltantes
df('Age') = df('Age').fillna(df('Age').median())
df('Email') = df('Email').fillna('(email protected)')
df('Gender') = df('Gender').fillna(df('Gender').mode()(0))
df('Purchase_Amount') = df('Purchase_Amount').fillna(df('Purchase_Amount').median())
df('Join_Date') = df('Join_Date').fillna(method='ffill')
df('Tweet') = df('Tweet').fillna('No tweet')
df('Phone') = df('Phone').fillna('000-000-0000')
- Eliminar los duplicados
df.drop_duplicates(inplace=True)
- Detener bancos en blanco y estandarizar los campos de texto
df('Name') = df('Name').apply(lambda x: x.strip().lower() if isinstance(x, str) else x)
df('Feedback') = df('Feedback').str.replace(r'(^ws)', '', regex=True)
- Convertir tipos de datos
df('Age') = df('Age').astype(int)
df('Purchase_Amount') = df('Purchase_Amount').astype(float)
df('Join_Date') = pd.to_datetime(df('Join_Date'), errors="coerce")
- Arreglar títulos no válidos
df = df(df('Age').between(10, 100)) # realistic age
df = df(df('Purchase_Amount') > 0) # remove negative or zero purchases
- Exterminio atípica usando Z-Score
numeric_cols = df(('Age', 'Purchase_Amount'))
z_scores = np.abs(stats.zscore(numeric_cols))
df = df((z_scores < 3).all(axis=1))
- Ascendencia de regex
df('Email_Username') = df('Email').str.extract(r'^((^@)+)')
df('Join_Year') = df('Join_Date').astype(str).str.extract(r'(d{4})')
df('Formatted_Phone') = df('Phone').str.extract(r'(d{3}-d{3}-d{4})')
- Agilidad final de ‘nombre’
df('Name') = df('Name').apply(lambda x: x if isinstance(x, str) else 'unknown')
Conjunto de datos antaño de expurgar

Conjunto de datos a posteriori de la desinterés

Lea asimismo: Agilidad de datos: ¡Cómo expurgar datos con Python!
Conclusión
La desinterés de datos es un paso crucial en cualquier disección de disección o tesina de enseñanza necesario. Al dominar estas poderosas frases de Python para la desinterés de datos, puede optimizar su flujo de trabajo de preprocesamiento de datos, asegurando que sus datos sean precisos, consistentes y listos para el disección. Desde el manejo de títulos faltantes y duplicados hasta eliminar títulos atípicos y problemas de formato, estas frases individuales le permiten expurgar sus datos de modo valioso sin escribir un código grande. Al emplear el poder de los pandas y las expresiones regulares, puede prolongar su código expedito, conciso y acomodaticio de prolongar. Ya sea que sea un principiante o un profesional, estos métodos lo ayudarán a expurgar sus datos más inteligentes y más rápido.
Preguntas frecuentes
La desinterés de datos es el proceso de identificación y corrección o matanza de errores, inconsistencias e inexactitudes en los datos para avalar su calidad. Es importante porque los datos limpios conducen a un disección más preciso, un mejor rendimiento del maniquí y ideas confiables.
dropna () elimina filas o columnas con títulos faltantes.
Fillna () llena los títulos faltantes con un valía especificado, como la media, mediana o una constante predefinida, para retener el tamaño y la estructura del conjunto de datos.
Puede usar la función drop_dupplicates () para eliminar filas duplicadas en función de columnas específicas o el conjunto de datos completo. Incluso puede especificar si debe prolongar el primer o el posterior ocurrencia o eliminar todos los duplicados.
Los títulos atípicos se pueden manejar utilizando métodos estadísticos como el puntaje Z para eliminar los títulos extremos o recortar los títulos (limitantes) a un rango especificado utilizando la función clip ().
Puede usar la función str.strip () para eliminar los espacios principales y finales de las cadenas y la función str.replace () con una expresión regular para eliminar la puntuación.
Puede usar el método Astype () para convertir una columna al tipo de datos correcto, como enteros o flotadores, o usar PD.To_Datetime () para columnas relacionadas con la vencimiento.
Puede manejar los títulos faltantes eliminando filas o columnas con dropna () o llenándolos con un valía adecuado (como la media o mediana) usando Fillna (). El método depende del contexto de su conjunto de datos y de la importancia de retener datos.
Inicie sesión para continuar leyendo y disfrutando de contenido curado por expertos.