Cambiar el tipo de datos para una o más columnas en Pandas Dataframe

Veamos cómo cambiar el tipo de columna en Pandas DataFrames. Hay diferentes formas de cambiar el tipo de datos para una o más columnas en Pandas Dataframe.

Método 1: Cambiar el tipo de columna en pandas usando DataFrame.astype()

Marco de datos.astype()

Python3

# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '1.0', '1.3', 2, 5]})
 
# using dictionary to convert specific columns
convert_dict = {'A': int,
                'C': float
                }
 
df = df.astype(convert_dict)
print(df.dtypes)

Producción: 

 

Método 2: cambie el tipo de columna a un objeto de string usando DataFrame.astype() 

Podemos pasar cualquier tipo de datos de Python , Numpy o Pandas para cambiar todas las columnas de un marco de datos a ese tipo, o podemos pasar un diccionario que tenga nombres de columnas como claves y tipos de datos como valores para cambiar el tipo de columnas seleccionadas. 

Python3

# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '1.0', '1.3', 2, 5]})
 
# converting all columns to string type
df = df.astype(str)
print(df.dtypes)

Producción: 

 

Método 3: Cambiar el tipo de columna en pandas usando DataFrame.apply() 

Podemos pasar pandas.to_numeric, pandas.to_datetime y pandas.to_timedelta como argumentos para aplicar la función apply() para cambiar el tipo de datos de una o más columnas a numérico, DateTime y delta de tiempo respectivamente. 

Python3

# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, '4', '5'],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '2.1', 3.0, '4.1', '5.1']})
 
# using apply method
df[['A', 'C']] = df[['A', 'C']].apply(pd.to_numeric)
print(df.dtypes)

Producción: 

 

Método 4: Cambiar el tipo de columna en pandas usando DataFrame.infer_objects() 

Este método intenta una conversión suave infiriendo el tipo de datos de las columnas de tipo ‘objeto’. Las columnas no objeto y no convertibles se dejan sin cambios. 

Python3

# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, 2.1, 3.0, 4.1, 5.1]
}, dtype='object')
 
# converting datatypes
df = df.infer_objects()
print(df.dtypes)

Producción: 

 

Método 5: Cambiar el tipo de columna en pandas usando convert_dtypes()

El método convert dtypes()  devuelve un nuevo DataFrame con el tipo de datos de cada columna cambiado al mejor .

Python3

import pandas as pd
 
data = {
  "name": ["Aman", "Hardik", pd.NA],
  "qualified": [True, False, pd.NA]
}
 
df = pd.DataFrame(data)
 
print("Original_dtypes:")
print(df.dtypes)
 
newdf = df.convert_dtypes()
 
print("New_dtypes:")
print(newdf.dtypes)

Producción:

Original_dtypes:
name         object
qualified    object
dtype: object
New_dtypes:
name          string
qualified    boolean
dtype: object

Publicación traducida automáticamente

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