pandas 日期数据处理:从类型转换到按周期统计实战

闻溪
闻溪
发布时间:2026-10-13 | 5人浏览过
原创

本文详解 pandas 中日期类型数据的处理流程,涵盖 Timestamp 与 datetime 的转换、read_csv 中 parse_dates 的使用,以及利用 dt 属性提取年月日信息。重点介绍通过 strftime 和 to_period 方法生成格式化周期字段,并结合 pivot_table 实现按月份、季度及年度的 SKU 销售金额统计,提供完整的代码示例与数据透视表生成步骤。

pandas 日期类型概览

pandas 库中主要包含以下几类日期与时间数据类型:

Concept Scalar Class Array Class pandas Data Type Primary Creation Method
Date times Timestamp DatetimeIndex datetime64[ns] or datetime64[ns, tz] to_datetime or date_range
Time deltas Timedelta TimedeltaIndex timedelta64[ns] to_timedelta or timedelta_range
Time spans Period PeriodIndex period[freq] Period or period_range
Date offsets DateOffset None None DateOffset


本文聚焦于处理时点数(point in time)的常用技巧,沿用前文示例数据进行演示。在 pandas 中,Timestamp 用于表示具体的时点,其用法在绝大多数场景下与 Python 标准库中的 datetime 类型保持一致。

日期列的类型转换方法

第一步是加载数据,并将 DataFrame 中的 date 列转换为 datetime 类型:


df1 = pd.read_csv('https://raw.githubusercontent.com/stonewm/python-practice-projects/master/pandas%20sample%20data/sample-salesv3.csv')
df1['date'] = pd.to_datetime(df1['date']) # convert date column to datetime
df1.head()

另一种更高效的方式是在读取 CSV 文件时,通过 read_csv() 函数的 parse_dates 参数,直接将指定列转换为 datetime64 类型:


df1 = pd.read_csv('sample-salesv3.csv', parse_dates=['date'])

利用 dt 属性提取时间信息

基于上述销售数据,我们需要按月份和季度统计各 SKU 的销售金额。pandas 提供了 pandas.Series.dt 属性,用于提取日期或时间类型的详细信息,例如:


df1['date'].dt.year
df1['date'].dt.month
df1['date'].dt.quarter

上述方法返回的结果为整数类型(int),但在进行数据聚合统计时,我们通常更倾向于使用如 2014-04 这样的字符串格式。实现这一目标有两种常用方法:


# 方法 1
df1['year_month'] = df1['date'].apply(lambda x : x.strftime('%Y-%m'))

生成格式化周期字段与统计

第二种方法的具体实现如下:


df1['period'] = df1['date'].dt.to_period('M')

第二种方式操作更为简便。参数 'M' 代表月份,'Q' 代表季度,'A' 代表年度,'D' 代表按天统计,这些是日常处理中最常用的周期参数。生成新列后,即可构建数据透视表:


import numpy as np
pivot = pd.pivot_table(df1, index=['sku'], columns=['period'], values=['ext price'], aggfunc=np.sum)
pivot.head()

接下来,我们进一步生成按季度统计的数据透视表:


df1['quarter'] = df1['date'].dt.to_period('Q')
quarter_pivot = pd.pivot_table(df1, index=['sku'], columns=['quarter'], values=['ext price'], aggfunc=np.sum)

参考资源

Time Series / Date functionality

Extracting just Month and Year from Pandas Datetime column

以上内容即为本文的全部介绍,希望能为您的学习提供助力,也欢迎持续关注本站以获取更多技术分享。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表