Mengapa Pandas memberi tahu saya bahwa saya memiliki objek, meskipun setiap item di kolom yang dipilih adalah string - bahkan setelah konversi eksplisit.
Ini adalah DataFrame saya:
<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)
Lima di antaranya adalah dtype object
. Saya secara eksplisit mengonversi objek-objek itu menjadi string:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Kemudian, df["attr2"]
masih memiliki dtype object
, meskipun type(df["attr2"].ix[0]
mengungkapkan str
, mana yang benar.
Panda membedakan antara int64
dan float64
dan object
. Apa logika di baliknya bila tidak ada dtype str
? Mengapa str
dilindungi oleh object
?