问题描述
有两个包含相同dtypes的数据框:
>>> df1.dtypes
code object
date object
open float64
high float64
low float64
close float64
volume int64
dtype: object
>>> df2.dtypes
code object
date object
open float64
high float64
low float64
close float64
volume int64
dtype: object
为什么数据框的列中的元素显示不同的类型?
>>> x1 = df1['date'][0]
>>> x1
'19901219'
>>> x2 = df2['date'][0]
>>> x2
20050225
>>> type(x1)
<class 'int'>
>>> type(x2)
<class 'str'>
大熊猫中的object
概念代表字符串。
data-type description
我可以推断x1
的类型应该与str
的{{1}}相同,
为什么x2
的类型是x1
,而不是int
?
解决方法
因为熊猫中的“对象”在Python中可以是“ str或混合”。
https://pandas.pydata.org/pandas-docs/stable/user_guide/basics.html#basics-dtypes
Pandas有两种存储字符串的方法。
object dtype,可以容纳任何Python对象,包括字符串。
StringDtype,专用于字符串。