P2:Investigate a Dataset(探索数据集)

Choose one of Udacity's curated datasets and investigate it using NumPy and Pandas. Go through the entire data analysis process, starting by posing a question and finishing by sharing your findings.

P2的课已经达到要求了,虽然code重新提交了两次才通过,完整的报告已经放在了自己的github上,点这里, 不过这一个学到了太多新的东西,还是需要好好消化一下,完善一下笔记。

目录(简书竟然不支持目录!)
ANACONDA 和 JUPYTER NOTEBOOKS
数据分析过程
用Numpy和Pandas分析一维数据
用Numpy和Pandas分析二维数据


ANACONDA AND JUPYTER NOTEBOOKS

这两个对我来说是用于数据分析的新工具,但是感觉非常的好的用,有几个我认为比较重要的指令:

conda upgrade --all
conda install jupyter notebook #安装jupyter notebook
conda create -n py2 python=2    #用于创造一个新的python2的环境,py2可替换成任意环境名字
jupyter notebook #启动notebook

一开始我创建新指令之后,在notebook中并没有能够找到我新环境的选项,如图所示:

kernel

后来我才发现,在创建了心的conda环境之后,其实要再安装一遍jupyter notebook,不然不会在界面中显示出来。

在Jupyter notebook中书写格式主要是代码和markdown。其实之前接触过一点markdown,所以不算陌生,基本写法可以参考这里,再有,对数据分析比较重要的是数学公式的书写,可以参考这里


数据分析过程

流程图

读取CSV

with open(filename, 'rb') as f:
    reader = unicodecsv.DictReader(f)
    result = list(reader)

(之后pandas提供了更简单的函数,这个基本现在用不上了)

注意在数据处理过程中,用int(), float()对数据根据要求进行相应的转换。

虽然说只要过一遍计算机导论,python就够用了,其实还是有些新的内容,又学了几个写法:

 
#在dictionary中遍历的方法,a,b in [dictionary].item(), a是key, b是值,比如:
 for key, data_points in grouped_data.items()

#values()--This method returns a list of all the values available in a given dictionary.
total_minutes = total_minutes_by_account.values()

#set()的使用,利用set(),可以建立一个没有重复项的合集,比如:
pass_subway_project = set()

关于set()更多的用法可以参考这里

pyplot的使用

%pylab inline #可以让图标在notebook中直接打开
import matplotlib.pyplot as plt
import numpy as np #缩写

# Summarize the given data
def describe_data(data,bin = None):
    print 'Mean:', np.mean(data)
    print 'Standard deviation:', np.std(data)
    print 'Minimum:', np.min(data)
    print 'Maximum:', np.max(data)
    if bin == None:
        plt.hist(data)
    else:
        plt.hist(data, bins = bin)

这里的describe_data我引入了两个parametersdatabin =None,这是从cs101地方学来的,如果用的时候不考虑bin,我在用函数时候,只要填写data这个参量就可以,如果要设定bin,填写数字参量。然后在function内添加一个if判断就可以实现了。


用Numpy和Pandas分析一维数据

Numpy作为python的数据库,可以进行多项运算
具体的代码笔记已经放在github上。

在code review中,reviewer给我推荐了用 kernel density estimates,来理清性别和生存率的关系,他给我了这么一张图,我觉得挺高大上的,于是我就研究了一个下午:

kde(kernel density estimation)是核密度估计。核的作用是根据离散采样,估计连续密度分布。

参考了知乎的一篇文章,写的很生动(python的seaborn.kdeplot有什么用?)(https://www.zhihu.com/question/43415333)虽然大部分我还是没看懂

seaborn中有个seaborn.kdeplot就是用来算这个的,我的目标是先把1D data的搞清楚:

import seaborn as sns
female_df_age = titanic_df[titanic_df['Sex'] == 'female']['Age'].dropna()
#注意这种df[df[] ==""]按照条件提取相对应数组的手法
male_df_age = titanic_df[titanic_df['Sex'] == 'male']['Age'].dropna()
sns.kdeplot(female_df_age, shade=True, shade_lowest=False,label='Female')
sns.kdeplot(male_df_age, shade=True, shade_lowest=False,label='Male')

最后画出来了这是样的,我就可以根据随意一个年龄去推算他的在船上出现的概率,然后与生存率相结合着来看(其实说实话我觉得他的那个图好看是好看,可还是有点看不懂)

Paste_Image.png

用Numpy和Pandas分析二维数据

具体的代码笔记已经放在github上,这一块有三个笔记,包括了最后的制图。

Pandas里dataframes的几个join方式

这个也是比较搞脑子的,参数不一样合并的结果不一样,重点注意how这个参量的变化,outer是全部合并,inner是合并除了有无效值的row, right保留右边的数据(虽然合并之后左边会是无效值)left就恰好相反,详细的还是要看完整的合并指南,每次忘记怎么合并了,再看看。

当两边的df数据key值不一样,要用left_on和right_on来对左右数据做一一的匹配才能保证正确合并。


左右合并key不一样的时候

Matlab的使用

这一块要再有空的时候继续加强,特别是作图的时候,熟悉几个用法还是很重要的。
Pyplot tutorial
pandas.DataFrame.plot
其实我有时候会搞混的,现在终于知道个大概:

*New in version 0.17.0:* Each plot kind has a corresponding method on the DataFrame.plot accessor:
df.plot(kind='line') is equivalent to df.plot.line()
.

这章节已经完结(2017年1月7日)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容