¿Cómo convertir una string a un entero en Pandas DataFrame?

Veamos métodos para convertir una string en un número entero en Pandas DataFrame:

Método 1: Uso del método Series.astype() .

Sintaxis: Series.astype(dtype, copy=True, errors=’raise’)

Parámetros: Este método tomará los siguientes parámetros:

  • dtype: tipo de dato en el que convertir la serie. (por ejemplo, str, float, int).
  • copy: Hace una copia de dataframe /series.
  • errores: Error al generar la conversión a un tipo de datos no válido. Por ejemplo, dict to string. ‘raise’ generará el error e ‘ignore’ pasará sin generar el error.

Retorno: Serie con tipo de dato cambiado.

Uno de los enfoques más efectivos es Pandas astype(). Se utiliza para modificar un conjunto de tipos de datos. Las columnas se importan ya que el marco de datos se crea a partir de un archivo csv y el tipo de datos se configura automáticamente, lo que varias veces no es lo que debería tener. Por ejemplo, una columna de salario puede importarse como una string, pero tenemos que convertirla en flotante para realizar operaciones.

Ejemplo 1: 

Python3

# import pandas library
import pandas as pd
 
# dictionary
Data = {'Name': ['GeeksForGeeks','Python'],
          'Unique ID': ['900','450']}
 
# create a dataframe object
df = pd.DataFrame(Data)
 
# convert string to an integer
df['Unique ID'] = df['Unique ID'].astype(int)
 
# show the dataframe
print (df)
print("-"*25)
 
# show the data types
# of each columns
print (df.dtypes)

Producción :
 

dataframe with datatypes

Ejemplo 2:

Python3

# import pandas library
import pandas as pd
 
# dictionary
Data = {'Algorithm': ['Graph', 'Dynamic Programming',
                      'Number Theory',
                      ' Sorting And Searching'],
         
          'Problems': ['62', '110', '40', '55']}
 
# create a dataframe object
df = pd.DataFrame(Data)
 
# convert string to integer
df['Problems'] = df['Problems'].astype(int)
 
# show the dataframe
print (df)
print("-"*25)
 
# show the data type
# of each columns
print (df.dtypes)

Producción :
 

dataframe with data types

Método 2: Uso de  pandas . método to_numeric().

Sintaxis: pandas.to_numeric(arg, errores=’subir’, downcast=Ninguno)

Parámetros: Este método tomará los siguientes parámetros:

  • arg: lista, tupla, array unidimensional o Serie.
  • errores: {‘ignorar’, ‘elevar’, ‘coaccionar’}, ‘elevar’ predeterminado
    -> Si ‘elevar’, el análisis no válido generará una excepción
    -> Si ‘obligar’, el análisis no válido se establecerá como NaN
    – > Si ‘ignorar’, entonces el análisis no válido devolverá la entrada
  • downcast : [predeterminado Ninguno] Si no es Ninguno, y si los datos se han convertido con éxito a un tipo numérico, convertir los datos resultantes al tipo numérico más pequeño posible de acuerdo con las siguientes reglas:
    -> ‘entero’ o ‘firmado’: el signo más pequeño int dtype (min.: np.int8)
    -> ‘unsigned’: menor int dtype sin signo (min.: np.uint8)
    -> ‘float’: menor float dtype (min.: np.float32)

Devuelve: numérico si el análisis se realizó correctamente. Tenga en cuenta que el tipo de devolución depende de la entrada. Serie si Serie, de lo contrario ndarray.

pandas.to numeric() es uno de los métodos más utilizados para convertir un argumento a un formato numérico en Pandas.

Ejemplo 1:

Python3

# import pandas library
import pandas as pd
 
# dictionary
Data = {'Name': ['GeeksForGeeks','Python'],
          'Unique ID': ['900','450']}
 
# create a dataframe object
df = pd.DataFrame(Data)
 
# convert integer to string
df['Unique ID'] = pd.to_numeric(df['Unique ID'])
 
# show the dataframe
print (df)
print("-"*30)
 
# show the data type
# of each columns
print (df.dtypes)

Producción :
 

dataframe with datatypes

Ejemplo 2:

Python3

# import pandas library
import pandas as pd
 
# dictionary
Data = {'Algorithm': ['Graph', 'Dynamic Programming',
                      'Number Theory',
                      ' Sorting And Searching'],
         
          'Problems': ['62', '110', '40', '55']}
 
# create a dataframe object
df = pd.DataFrame(Data)
 
# convert string to an integer
df['Problems'] = pd.to_numeric(df['Problems'])
 
# show the dataframe
print (df)
print("-"*30)
 
# show the data type
# of each column
print (df.dtypes)

Producción :
 

dataframe with datatypes

Publicación traducida automáticamente

Artículo escrito por shardul_singh_tomar 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 *