Perché i Panda mi dicono che ho oggetti, sebbene ogni elemento nella colonna selezionata sia una stringa, anche dopo una conversione esplicita.
Questo è il mio 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)
Cinque di loro lo sono dtype object
. Converto esplicitamente quegli oggetti in stringhe:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Quindi, df["attr2"]
ha ancora dtype object
, anche se type(df["attr2"].ix[0]
rivela str
, il che è corretto.
Pandas distingue tra int64
e float64
e object
. Qual è la logica dietro quando non c'è dtype str
? Perché è str
coperto da object
?