《统计思维——程序员数学之概率统计》学习笔记及每章练习
第一章 探索性数据分析
-
练习1.1
主要目的是为了熟悉作者正文里用到的一些获取数据的方法。
– ReadFemPreg:从dct文件和dat文件中分别读取属性和数据,组合成一个DataFrame对象返回,供后续分析数据使用。
– 访问DataFrame中的一列,可以用字典语法 df[‘pregordr’], 也可以用点标记法 df.pregordr(只有当列名为合法的Python标识符时才能使用)。
– 为DataFrame添加新列时,必须使用字典语法。
– DataFrame的每一列是一个Series对象,可以用valude_counts()方法计算每个值出现的次数,如:df.outcome.value_counts().sort_index().
– MakePregMap():获取每个caseid对应的所有index(一位受访者会有n次怀孕数据,对应n行)。函数实现中用到的collections.defaultdict()用于返回一个类似字典的对象,可以不用显式赋值。
– 获取特定caseid的所有数据:preg[preg.caseid==2298] -
练习1.2
– 读取2001FemResp.dat.gz数据:将ReadFemResp入参改为(dct_file=‘2001FemResp.dct’, dat_file=‘2001FemResp.dat.gz’, nrows=None). 读取pregnum:
resp_2001 = ReadFemResp_2001()
preg_2001 = nsfg.ReadFemPreg()
pregnum_list = preg_2001.pregnum.value_counts().sort_index()
print(pregnum_list)
– 比较Resp和Preg文件中每位调查者的妊娠次数: 遍历Resp中的每个index,得到index对应的pregnum数