Tại sao Pandas nói với tôi rằng tôi có các đối tượng, mặc dù mọi mục trong cột đã chọn là một chuỗi - ngay cả sau khi chuyển đổi rõ ràng.
Đây là DataFrame của tôi:
<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)
Năm trong số đó là dtype object
. Tôi chuyển đổi rõ ràng các đối tượng đó thành chuỗi:
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
Sau đó, df["attr2"]
vẫn có dtype object
, mặc dù type(df["attr2"].ix[0]
tiết lộ str
, đó là chính xác.
Gấu trúc phân biệt giữa int64
và float64
và object
. Logic đằng sau nó là gì khi không có dtype str
? Tại sao một str
được bao phủ bởi object
?