52.计算两个日期之间的间隔天数

李光朱课程2024-04-30 10:48:50  62

案例导入

如下图,“身份证”列数据是身份证号,号码中第7-14字符表示出生日期。请根据身份证号计算所有人员的年龄,取整后添加到”年龄“列。输出修改后的表数据。添加代码注释。

图1.原始数据表

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/身份证号.xlsx。该Excel文件的第一个工作表中A-C列为给定数据。用pandas导入Excel文件的数据,导入前8行数据,引擎为"openpyxl"。在导入的数据中,“身份证”列数据是身份证号,号码中第7-14字符表示出生日期。请根据身份证号计算所有人员的年龄,取整后添加到”年龄“列。输出修改后的表数据。添加代码注释。”

显示结果如下:

为了完成这个任务,我们将使用pandas库来读取Excel文件,并使用Python的日期和时间功能来计算年龄。以下是一个包含注释的Python脚本示例:

import pandas as pdfrom datetime import datetime, timedelta# 定义文件路径file_path = 'D:/Samples/身份证号.xlsx'# 使用pandas读取Excel文件,指定工作表为第一个(索引为0),使用openpyxl引擎,并限制读取前8行df = pd.read_excel(file_path, sheet_name=0, engine='openpyxl', nrows=8)# 假设身份证列的名称是'身份证'# 如果列名不同,请将下面的'身份证'替换为实际的列名id_card_column = '身份证'# 创建一个新的列'年龄'来存储计算出的年龄df['年龄'] = 0# 遍历身份证数据列,计算每个人的年龄for index, row in df.iterrows: id_card_number = row[id_card_column] # 提取身份证中的出生日期部分(第7-14位) birth_date_str = id_card_number[6:14] # 转换为日期格式(假设身份证的日期格式是'YYMMDD') birth_date = datetime.strptime(birth_date_str, '%Y%m%d') # 计算年龄(取整) today = datetime.today age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day)) # 将年龄存储到DataFrame中 df.at[index, '年龄'] = age# 输出修改后的表数据print(df)# 如果需要,也可以将修改后的数据保存回Excel文件# df.to_excel('D:/Samples/身份证号_带年龄.xlsx', index=False, engine='openpyxl')

请注意,上述代码假设身份证中的日期格式是YYYYMMDD。此外,在计算年龄时,我们考虑了是否过了生日,以确保年龄计算的准确性。

如果身份证列的名称不是'身份证',请确保将id_card_column变量的值替换为实际的列名。同样,如果你需要将修改后的数据保存回Excel文件,可以取消注释最后一行代码,并指定保存的文件路径和文件名。

Python运行结果

图2.Python运行结果

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/415053.html
0
随机主题
出道似整容! 天庭饱满地阁方圆的金晨, 原来12年前和现在判若两人陈幸同混双击败张本美和, 陈熠击败林依诺, 赵大成击败薛飞孟加拉国一议员在印度被害关注: 钟渭平率商用车企业访问日本三井住友总部父亲是非洲人, 他却入选了中国男篮, 和肤白貌美的女友是青梅竹马五羊本田全新级车上市,五种配色可选,配单缸风冷动力假吃演员们! 求求你们学学《庆余年2》付辛博是怎么演干饭戏的吧升级了!博尔特空中回旋踢3950解禁之后a5还是这么能打?得了,预算不够的话还是选他把。迈从a5舒淇宝格丽之夜疑似被日本女星针对…黄金纯度分为几种, 99999和9999黄金有什么区别他是公安部第三任部长, 59岁自杀, 两位公安部副部长受牵连被审查1948年, 大特务马汉三被蒋介石处死, 死前告诫妻儿: 万勿从事政治三排乘客舒适, 激光雷达加持, 搭载800V快充, 零跑C16好开不贵贸易商表示, 由于巴西价格坚挺, 中国购买美国大豆赖清德就任, 日本上蹿下跳, 中方针对琉球? 华春莹: 落实开罗宣言2024年养老保险缴费15年, 在山东省退休, 养老金能领到1500元吗?十个回合吃双车,惊天妙手,套路杀招,新手必备森林狼大战独行侠! 李凯尔1分钟砍7分 唐斯打铁 麦克丹尼尔斯爆发从18Pro换到24Pro,我被M4 iPad Pro整懵了.......周鸿祎做客京东直播间畅谈AI:中国大模型发展关键在抓住场景
最新回复(0)