work with tutorial new index functions example data create python object pandas

with - python pandas dataframe tutorial



Cómo convertir una columna con dtype como objeto a cadena en Pandas Dataframe (5)

Esta pregunta ya tiene una respuesta aquí:

Cuando leo un archivo csv en el marco de datos de pandas, cada columna se convierte en sus propios tipos de datos. Tengo una columna que se convirtió en un objeto. Quiero realizar operaciones de cadena para esta columna, como dividir los valores y crear una lista. Pero tal operación no es posible porque su dtype es objeto. ¿Alguien puede decirme cómo convertir todos los elementos de una columna en cadenas en lugar de objetos?

Lo intenté de varias maneras pero nada funcionó. Usé astype, str (), to_string, etc.

a=lambda x: str(x).split('','') df[''column''].apply(a)

o

df[''column''].astype(str)


¿Intentaste asignarlo de nuevo a la columna?

df[''column''] = df[''column''].astype(''str'')

En referencia a esta question , el marco de datos de pandas almacena los punteros a las cadenas y, por lo tanto, es de tipo ''objeto''. Según los docs , puedes probar:

df[''column_new''] = df[''column''].str.split('','')


Como los tipos de datos de cadenas tienen una longitud variable, se almacenan por defecto como dtype de objeto. Si desea almacenarlos como tipo de cadena, puede hacer algo como esto.

df[''column''] = df[''column''].astype(''|S80'') #where the max length is set at 80 bytes,

o alternativamente

df[''column''] = df[''column''].astype(''|S'') # which will by default set the length to the max len it encounters


No responde la pregunta directamente, pero podría ayudar a alguien más.

Tengo una columna llamada Volume , que tiene tanto - (inválido / NaN) como números formateados con ,

df[''Volume''] = df[''Volume''].astype(''str'') df[''Volume''] = df[''Volume''].str.replace('','', '''') df[''Volume''] = pd.to_numeric(df[''Volume''], errors=''coerce'')

Se requiere la str.replace a cadena para que se aplique a la str.replace de str.replace

str.replace
pandas.to_numeric


Puede intentar usar df[''column''].str. y luego usar cualquier función de cadena. La documentación de Pandas incluye aquellos como split