【问题标题】:How to calculate age based on PESEL number in Python Pandas?如何根据 Python Pandas 中的 PESEL 数计算年龄?
【发布时间】:2021-08-25 03:02:58
【问题描述】:
在我国,PESEL 号码由 11 个数字组成。
- 前两个数字表示出生年份,例如:00(表示 2000 年)、95(表示 1995 年)等等...
- 接下来的两个数字表示月份。
- 接下来的两个数字表示日期。
看起来像:95050611475,所以在这种情况下:
我有如下 PESEL 编号的列:
如何根据 PESEL 编号和当前日期计算年龄?
**请注意,如果某人在 PESEL 开头有 00,则表示他出生于 2000 年。
【问题讨论】:
标签:
python
pandas
numpy
math
aggregation
【解决方案1】:
您可以从PESEL 中提取子字符串并将其转换为datetime。然后,您可以从current timestamp 中subtract。这将为您提供days 中的time delta。
如果您想将此信息转换为year,您可以将结果除以np.timedelta64(1, 'Y')。
df['age'] = (pd.Timestamp.now() - pd.to_datetime(df.PESEL.str[:6], format = '%y%m%d')) / np.timedelta64(1, 'Y')
PESEL age
0 95050611475 26.093457
1 00112575862 20.535506