Cadenas en un DataFrame, pero dtype es objeto
¿Por qué las pandas me dicen que tengo objetos, aunque cada elemento de la columna seleccionada es una cadena, incluso después de una conversión explícita?
Este es mi DataFrame:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id 56992 non-null values
attr1 56992 non-null values
attr2 56992 non-null values
attr3 56992 non-null values
attr4 56992 non-null values
attr5 56992 non-null values
attr6 56992 non-null values
dtypes: int64(2), object(5)
Cinco de ellos sondtype object
. Convierto explícitamente esos objetos a cadenas:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Entonces,df["attr2"]
todavía tienedtype object
, a pesar de quetype(df["attr2"].ix[0]
revelastr
, cual es correcta.
Pandas distingue entreint64
yfloat64
yobject
. ¿Cuál es la lógica detrás de esto cuando no haydtype str
? Porque es unstr
cubierto porobject
?