姓名分析
01 起
我们拿到一份1880-2016这136年间美国婴儿取名的数据(数据源在这里下载),数据总共有189万条,57.7M的大小,字段如下:
下面我们使用Python3来对该数据集进行分析,看看一百多年来,男孩女孩姓名趋势。
首先读取1880-2016年的取名数据,由于每年的数据是一个独立的dataframe,因此我们使用concat()方法将各年数据整合为一个dataframeimport pandas as pd
#读取1880-2016年婴儿姓名使用信息,由于信息表按年统计,因此需要将多年数据整合到一张表中
years=range(1880,2017)
columns=["name","gender","frequency"]
pieces=[] #用于存储循环读取的每一年的数据,list中的每个元素代表一年的数据
#使用循环读取每年数据,并将各年数据都存入pieces中,pieces列表的各元素表示各年的数据
for year in years:
path="/Users/dengsudden/Documents/python_course/names/yob%d.txt" %year
frame=pd.read_csv(path,names=columns)
frame["year"]=year
pieces.APPend(frame)
#中pieces列表中填入各年数据后,需要使用concat方法将pieces各元素整合在一起
baby_names=pd.concat(pieces,ignore_index=True)
baby_names.tail()
输出结果如下,这是数据表的最后5行,输出方便大家观察数据表结构: