【发布时间】:2021-11-04 05:17:34
【问题描述】:
我有一个带有单个 day 列的 DataFrame:
| | day |
|----:|:--------------------------|
| 0 | 2021-08-28 00:00:00+00:00 |
| 1 | 2021-08-28 02:00:00+00:00 |
| 2 | 2021-08-28 04:00:00+00:00 |
| ... | ... |
| n | 2021-08-28 16:00:00+00:00 |
>>> df.dtypes
day datetime64[ns, UTC]
dtype: object
我注意到 pandas 在采样和索引时返回不同的日期数据类型,并且必须进行转换才能进行比较。
索引查询
>>> df.day[0]
Timestamp('2021-08-28 00:00:00+0000', tz='UTC')
>>> type(df.day[0])
pandas._libs.tslibs.timestamps.Timestamp
示例查询
>>> df.day.sample(1).values[0]
numpy.datetime64('2021-09-04T12:00:00.000000000')
>>> type(df.day.sample(1).values[0])
numpy.datetime64
发生了什么事?为什么 pandas 在两种场景中使用不同的数据类型?
- Python:3.8.10
- 熊猫:1.2.5
【问题讨论】:
-
正如您在官方文档中看到的,值将返回 numpy 风格的所有内容 :) __ 返回 DataFrame 的 Numpy 表示。 __
标签: python pandas dataframe datetime types