Python DataFrame中将出生日期转换为年龄的方法

一颗松果
一颗松果
发布时间:2026-10-13| 4人浏览过
原创

本文介绍在Python数据挖掘中,如何利用Pandas库将出生日期Series转换为年龄。通过pd.to_datetime格式化日期,结合datetime获取当前年份并相减,生成age特征变量,有效降低数据维度并提升算法训练效果。

在进行数据挖掘项目或大数据竞赛时,若样本对象为人,数据集中常包含出生日期的Series。例如以下示例数据:

# -*- coding: utf-8 -*-
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt %matplotlib inline
data = {'birth': ['10/8/00', '7/21/93', '6/14/01', '5/18/99', '1/5/98']}
frame = DataFrame(data)
frame

观察数据可知,'10/8/00'这类格式中,最左侧数字代表月份,中间数字代表日期,右侧数字代表年份。

在实际分析中,直接使用出生日期并非最优选择,而年龄更能反映不同阶段的状态差异,如收入、健康状况及居住条件等。年龄作为特征工程指标,能更有效地划分样本差异,避免出生日期信息量过大导致算法训练困难。

那么,如何将上述birth数据转换为年龄age呢?

此处需使用datetime库,具体操作如下:

(1)首先将birth列转换为标准时间格式。

frame['birth'] = pd.to_datetime(frame['birth'])
frame

 

(2)获取当前时间的年份,并减去birth列的年份。

import datetime as dt
now_year =dt.datetime.today().year #当前的年份
frame['age']=now_year-frame.birth.dt.year
frame

这里使用了dt.datetime.today().year来获取当前日期的年份,随后提取birth数据中的年份(frame.birth.dt.year),两者相减即得年龄数据,结果如下:

此外,有时还需关注出生月份与预测变量的关系。例如,星座分析常依据出生月、日评估对人的影响,也可采用相同方法提取月、日数据。

总结

以上介绍了在Python DataFrame中将出生日期转换为年龄的实现方法,希望能对读者有所帮助。如有疑问请留言,小编会及时回复。感谢大家对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。