最近收到求助邮件。他的需求是这样的:我是一名小学统计员。我长期从事统计工作。最近自学了一点python,但是如何用excel将8位出生日期换算成年龄,一直没有做好。现在请帮助我。不知道能不能帮到你!这个问题其实比较简单,最终的形式如下:主要涉及到格式转换和分组统计的需求,所以我们就开始一步步完成这个任务。1.读入excel文件importpandasaspdfile_name=r'学生信息表.xlsx'data=pd.read_excel(file_name)数据输出:2.处理出生日期,转换成时间格式这次我们使用pandas自带的to_datetime函数,简单易用,速度快。data['dateofbirth']=pd.to_datetime(data['dateofbirth'],format='%Y%m%d')3.在datetime包中加入一列age,减去date从当前时间的出生年份得到。importdatetimeasdtnow=dt.datetime.today().yeardata['yearold']=now-data['dateofbirth'].dt.yearOutput:4.对于那些熟悉教程的人,分组age和性别同时。这个问题的分组内容其实可以用pandas的pivot_table函数解决。这次我们就用另一种方法:groupby函数也可以搞定。#开始分组统计age=data.groupby(['yearold','gender'])age_group=age.agg({'studentname':'count'}).T输出:5,如果需要求和数据我们可以先把所有的数据分组统计一次b。然后分别统计女生的数据c.最后将两个统计数据组合成组女性数据age_single_female=data[data['gender']=='female'].groupby(['yearold'])age_single_female_group=age_single_female.agg({'studentname':'count'}).Tage_single_female_group.index=['onlygirls']组合数据age_union=pd.concat([age_single_group,age_single_female_group],join='outer')age_union.fillna(0)输出:这样就完成了年级的分组统计,其他按年级或地区分组类似。是不是一步一步写的,觉得pandas很好用,很简单。文渊网,仅供学习,侵删。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,800+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕你学不会!https://shimo.im/docs/JWCghr8...《Python学习资料》关注公众号【蟒圈】,每日优质文章推送。
