这一章是数据的整理,不过说实话,这章数据处理的复杂程度远远低于上一章,根据给出的整理好的格式我们夜来将杂乱的数据处理一下。
import pandas as pd
import numpy as np
df = pd.read_csv('./hfda_data/hfda_ch13_raw_data.csv')
df1 = pd.DataFrame(np.zeros((1087, 7)))
for i in range(0, 1087, 1):
lst = df.iloc[i, 0].split('#')
lst[1] = lst[1].strip('^')
df1.iloc[i, ::] = lst
df1.columns = ['PersonID', 'FirstName', 'LastName', 'ZIP', 'Phone', 'CallID', 'Time']
df1.to_csv('./hfda_data/hfda_ch13_data_for_pandas.csv')
这样我们就完成任务了。
突然书中告诉我们有重复数据,果然还是有坑的。
我们用:
df1.sort_values('PersonID', inplace=True)
果然看到好多的重复数据。
我们再来随便挑两条看看有什么不一样。
print(df1.iloc[0,::], '\n', df1.iloc[1,::])
我们看到除了CallID 和Time其他都是一致的。
这很可能是关系数据库查询返回数据的方式,而不是数据质量低劣。而客户也不需要CallID和Time域。
import pandas as pd
import numpy as np
df = pd.read_csv('./hfda_data/hfda_ch13_raw_data.csv')
df1 = pd.DataFrame(np.zeros((1087, 7)))
for i in range(0, 1087, 1):
lst = df.iloc[i, 0].split('#')
lst[1] = lst[1].strip('^')
df1.iloc[i, ::] = lst
df1.columns = ['PersonID', 'FirstName', 'LastName', 'ZIP', 'Phone', 'CallID', 'Time']
df2 = df1.drop_duplicates('PersonID', keep='first', inplace=False).copy()
df3 = df2.iloc[::, [0, 1, 2, 3, 4]].copy()
本书正文至此就结束了。虽然书中内容给人的感觉很浅显,但是还是很有借鉴意义的。
做笔记的目的就是为了将书中的重点总结出来,并且用python来实现。
书中有很多内容可以更深入的介绍,可能作者碍于篇幅或者考虑到受众面而没有深入介绍。
不过书中给了我们很多的方向,我们可以沿着作者的介绍方向去深入学习。
笔记中用到的库主要为numpy, pandas,matplotlib, tensorflow。
这里tensorflow是为了做一元回归,以后可能会更深入的介绍tensorflow以及神经网络。
matplotlib之所以没有列出用法,是因为官方网站上给了很多例子还有例子的代码,模版既然已经给好了,我们就可以直接套用了。
书中介绍的Excel技巧和R语言,我均未提及,因为电脑没有安装Excel和R语言(我认为python足够应付,Excel我则是用的Numbers表格)。
作者在自述中读完本书后最好再读一下《深入浅出的统计学》,以后我可能也会写相关笔记。
笔记不能代表原书,希望大家还是可以看看原文(何况网上就可以下载),
本书当中"世上没有傻问题",在笔记中均未提及,但是是书中重点。
书中给的9条建议很好,我在这里做一个简单罗列:
1.慢慢读
2.自己做练习,自己记笔记
3.阅读“世上没有傻问题”部分
4.短期记忆变长期记忆是需要时间的,这段时间再学习新东西,将会丢失一些刚学会的东西。
5.开口大声讨论(并没有人讨论,不过我们可以记笔记)
6.多喝水
7.聆听大脑的声音(不要超负荷)
8.找到感觉(深入思考)
9.勤加练习