¿Por qué Pandas me dice 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 lo son dtype object. Convierto explícitamente esos objetos en 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 tiene dtype object, aunque type(df["attr2"].ix[0]revela str, lo que es correcto.
Pandas distingue entre int64y float64y object. ¿Cuál es la lógica detrás de esto cuando no hay dtype str? ¿Por qué está strcubierto por object?



