为什么相同dtype的df中的元素显示不同的类型?

问题描述

有两个包含相同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有两种存储字符串的方法。

  1. object dtype,可以容纳任何Python对象,包括字符串。

  2. StringDtype,专用于字符串。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...