Tengo un marco de datos en pandas y estoy tratando de averiguar cuáles son los tipos de sus valores. No estoy seguro de cuál es el tipo de columna 'Test'
. Sin embargo, cuando corro myFrame['Test'].dtype
, obtengo;
dtype('O')
¿Qué significa esto?
pandas
utiliza librementeobject
dtype cuando las columnas contienen valores mixtos (cadenas, números, nan).Respuestas:
Significa:
Fuente .
Otra respuesta ayuda si es necesario comprobar
type
s.fuente
Cuando vea
dtype('O')
dentro del marco de datos, esto significa cadena Pandas.¿Qué es
dtype
?¿Algo que pertenece a
pandas
onumpy
, o ambos, o algo más? Si examinamos el código de pandas:Saldrá así:
Puede interpretar el último como Pandas
dtype('O')
o un objeto Pandas que es una cadena de tipo Python, y esto corresponde a Numpystring_
, ounicode_
tipos.Como Don Quijote está en el culo, Pandas está en Numpy y Numpy entiende la arquitectura subyacente de su sistema y usa la clase
numpy.dtype
para eso.El objeto de tipo de datos es una instancia de
numpy.dtype
clase que comprende el tipo de datos de manera más precisa, que incluye:En el contexto de esta pregunta
dtype
pertenece tanto a pands como a numpy y, en particular,dtype('O')
significa que esperamos la cadena.Aquí hay un código para probar con una explicación: Si tenemos el conjunto de datos como diccionario
Las últimas líneas examinarán el marco de datos y observarán el resultado:
Todo tipo de diferente
dtypes
Pero si intentamos establecer
np.nan
oNone
esto no afectará al tipo de columna original. La salida será así:Entonces
np.nan
oNone
no cambiará las columnasdtype
, a menos que establezcamos todas las filas de columnas ennp.nan
oNone
. En ese caso, la columna se convertirá enfloat64
oobject
respectivamente.También puede intentar configurar filas individuales:
Y tenga en cuenta aquí, si establecemos una cadena dentro de una columna que no es una cadena, se convertirá en una cadena u objeto
dtype
.fuente
Significa "un objeto de Python", es decir, no uno de los tipos escalares incorporados admitidos por numpy.
fuente
'O' significa objeto .
La primera línea devuelve:
dtype('O')
La línea con la declaración de impresión devuelve lo siguiente:
object
fuente