Чому Пандас каже мені, що у мене є об'єкти, хоча кожен елемент у вибраному стовпці є рядком - навіть після явного перетворення.
Це мій 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)
Їх п’ять dtype object
. Я явно перетворюю ці об'єкти в рядки:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Потім, df["attr2"]
все ще має dtype object
, хоча і type(df["attr2"].ix[0]
виявляє str
, що правильно.
Панда розрізняє int64
і float64
та object
. Яка логіка за цим, коли цього немає dtype str
? Чому str
покривається object
?