Athrun Data Intelligence


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!

Python One Liners Limpieza de datos

¿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.

  1. 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
  1. 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
  1. 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.

  1. 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.

  1. 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
  1. 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
  1. 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
  1. 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

  1. 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
  1. 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:

  1. 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))
  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

  1. Drop filas donde faltan todos los títulos
df.dropna(how='all', inplace=True)
  1. 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)
  1. 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')
  1. Eliminar los duplicados
df.drop_duplicates(inplace=True)
  1. 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)
  1. 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")
  1. 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
  1. 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))
  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})')
  1. 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

Python One Liners Limpieza de datos

Conjunto de datos a posteriori de la desinterés

Python One Liners Limpieza de datos

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

¿Qué es la desinterés de datos y por qué es importante?

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.

¿Cuál es la diferencia entre dropna () y fillna ()?

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.

¿Cómo puedo eliminar los duplicados de mi 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.

¿Cómo manejo los títulos atípicos en mis datos?

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 ().

¿Cómo puedo expurgar las columnas de condena eliminando espacios o puntuación adicionales?

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.

¿Qué debo hacer si una columna tiene tipos de datos incorrectos?

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.

¿Cómo manejo los títulos faltantes en mi conjunto de datos?

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.

Sabio de datos | AWS Certified Solutions Architect | AI y ML Reformador

Como irrefutable de datos en Analytics Vidhya, me especializo en enseñanza necesario, enseñanza profundo y soluciones impulsadas por IA, aprovechando las tecnologías de la PNL, la visión por computadora y la cirro para construir aplicaciones escalables.

Con un B.Tech en Ciencias de la Computación (ciencia de datos) de VIT y certificaciones como el arquitecto de soluciones certificadas de AWS y TensorFlow, mi trabajo alpargata la IA generativa, la detección de anomalías, la detección de noticiario falsas y el agradecimiento de emociones. Apasionado por la innovación, me esfuerzo por desarrollar sistemas inteligentes que dan forma al futuro de la IA.

Inicie sesión para continuar leyendo y disfrutando de contenido curado por expertos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *