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í:
- Pandas: cambie el tipo de datos de Series a String 3 respuestas
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
Puede intentar usar
df[''column''].str.
y luego usar cualquier función de cadena.
La documentación de Pandas incluye aquellos como
split
Utilice df.to_string ()
Link de referencia
http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.to_string.html