You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中datetime列调用describe()为何返回数值型统计结果?

关于pandas中datetime类型执行describe()的疑问

我在使用pandas进行数据分析时,拥有一个datetime列,并执行了如下代码:

import pandas as pd
import numpy as np

s = pd.Series([np.datetime64("2000-01-01"), np.datetime64("2010-01-01"), np.datetime64("2010-01-01")])
print('--------------------')
print(s)
print('--------------------')
print(s.dtype)
print('--------------------')
print(s.describe())

得到的输出如下:

--------------------
0   2000-01-01
1   2010-01-01
2   2010-01-01
dtype: datetime64[ns]
--------------------
datetime64[ns]
--------------------
count                      3
mean     2006-09-01 08:00:00
min      2000-01-01 00:00:00
25%      2004-12-31 12:00:00
50%      2010-01-01 00:00:00
75%      2010-01-01 00:00:00
max      2010-01-01 00:00:00
dtype: object

查阅pandas 2.0.0版本文档得知,上述统计结果的格式应为数值型数据的输出,而object、category、timestamp等非数值型数据的统计结果不同。我疑惑:datetime类型是否在describe()中被当作数值型处理?


实际上,pandas对datetime64类型执行describe()时,确实采用了类似数值型的统计逻辑,但本质是基于datetime的时间戳数值计算后再转回datetime格式展示。

datetime64类型在pandas内部是以int64格式存储的时间戳(比如纳秒级整数),计算均值、分位数这类统计量时,pandas会先把datetime转换为对应的时间戳数值完成数值计算,再将结果转回datetime格式呈现,这就导致输出的统计项(count、mean、min、25%、50%、75%、max)和数值型数据的describe()输出结构完全一致。

而object、category这类类型本身没有可直接计算的数值逻辑,所以describe()会输出unique、top、freq这类不同的统计项,和datetime的处理逻辑完全不同。

内容的提问来源于stack exchange,提问作者winter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:01:13