Pourquoi Pandas me dit-il que j'ai des objets, bien que chaque élément de la colonne sélectionnée soit une chaîne - même après une conversion explicite.
Voici mon 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)
Cinq d'entre eux le sont dtype object
. Je convertis explicitement ces objets en chaînes:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Ensuite, a df["attr2"]
encore dtype object
, bien que type(df["attr2"].ix[0]
révèle str
, ce qui est correct.
Pandas fait la distinction entre int64
et float64
et object
. Quelle est la logique derrière cela quand il n'y a pas dtype str
? Pourquoi est str
couvert par object
?