Reemplazar strings con números en Python para análisis de datos

A veces, necesitamos convertir valores de string en un marco de datos de pandas en un número entero único para que los algoritmos puedan funcionar mejor. Entonces asignamos un valor numérico único a un valor de string en Pandas DataFrame.

Nota: antes de ejecutar, cree un archivo example.csv que contenga algunos nombres y género

Digamos que tenemos una tabla que contiene nombres y una columna de género. En la columna de género, hay dos categorías masculino y femenino y supongamos que queremos asignar 1 a masculino y 2 a femenino.

Ejemplos:

Input : 
---------------------
    |  Name  |  Gender
---------------------
 0    Ram        Male
 1    Seeta      Female
 2    Kartik     Male
 3    Niti       Female
 4    Naitik     Male 

Output :
    |  Name  |  Gender
---------------------
 0    Ram        1
 1    Seeta      2
 2    Kartik     1
 3    Niti       2
 4    Naitik     1 

Método 1:

To create a dictionary containing two 
elements with following key-value pair:
Key       Value
male      1
female    2

Luego itere usando for loop a través de la columna Género de DataFrame y reemplace los valores donde se encuentren las claves.

# import pandas library
import pandas as pd
  
# creating file handler for 
# our example.csv file in
# read mode
file_handler = open("example.csv", "r")
  
# creating a Pandas DataFrame
# using read_csv function 
# that reads from a csv file.
data = pd.read_csv(file_handler, sep = ",")
  
# closing the file handler
file_handler.close()
  
# creating a dict file 
gender = {'male': 1,'female': 2}
  
# traversing through dataframe
# Gender column and writing
# values where key matches
data.Gender = [gender[item] for item in data.Gender]
print(data)

Producción :

    |  Name  |  Gender
---------------------
 0    Ram        1
 1    Seeta      2
 2    Kartik     1
 3    Niti       2
 4    Naitik     1 

Método 2:
el método 2 también es similar, pero no requiere un archivo de diccionario y requiere menos líneas de código. En esto, iteramos internamente a través de la columna Género de DataFrame y cambiamos los valores si la condición coincide.

# import pandas library
import pandas as pd
  
# creating file handler for
# our example.csv file in
# read mode
file_handler = open("example.csv", "r")
  
# creating a Pandas DataFrame
# using read_csv function that
# reads from a csv file.
data = pd.read_csv(file_handler, sep = ",")
  
# closing the file handler
file_handler.close()
  
# traversing through Gender 
# column of dataFrame and 
# writing values where
# condition matches.
data.Gender[data.Gender == 'male'] = 1
data.Gender[data.Gender == 'female'] = 2
print(data)

Producción :

    |  Name  |  Gender
---------------------
 0    Ram        1
 1    Seeta      2
 2    Kartik     1
 3    Niti       2
 4    Naitik     1 

Aplicaciones

  1. Esta técnica se puede aplicar en Data Science. Supongamos que si estamos trabajando en un conjunto de datos que contiene género como ‘masculino’ y ‘femenino’, entonces podemos asignar números como ‘0’ y ‘1’ respectivamente para que nuestros algoritmos puedan trabajar con los datos.
  2. Esta técnica también se puede aplicar para reemplazar algunos valores particulares en un conjunto de datos con nuevos valores.

Referencias

Publicación traducida automáticamente

Artículo escrito por neerajnegi174 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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