目前手上有两本书,一本《利用Python进行数据分析》,一本《Python数据科学》。


对于学习什么东西,都有它的「道」和「术」。「道」即原理,「术」即技巧。


通过这几天翻阅这两本书,发现前者更像一本工具书。


它并不会真正的教你如何去分析数据,适合查阅。


而后者呢,更注重数据分析的原理,教我们如何去剖析数据,得到我们想要的结果。


所以接下来会以后者作为学习的方向,不能仅仅停留在描述性数据分析上(数据可视化)。


更应该多花时间在预测性数据分析上(建立数据模型预测)。


另外上期的送书活动已结束,两位小伙伴也联系我了。


没有中奖的小伙伴也不要伤心,后面小F会给大家争取更多的福利,所以关注就是了。



/ 01 / 前言


说实话,《Python数据科学》这本书是真的不错。


它不仅提供了大量的专业术语的解释,还有各式各样通俗易懂的案例。


非常适合新手学习,后期一定也给大家争取争取一下送书的福利!


所以在每篇的前言,我会摘要一些《Python数据科学》的相关内容。


一方面,加深自己对相关知识的印象。


另一方面,也分享给大家,补充一下专业知识。


分析过程中尽量不用书中的数据和案例,用我自己公众号文章的数据和案例。


这样显得更接地气一点,学的也更深刻。


变量分为「名义变量」「等级变量」「连续性变量」。


「名义变量」为无序分类变量。


比如豆瓣电影TOP250数据里的「国家」「电影名称」。


「等级变量」为有序分类变量。


比如数据分析岗数据里的「学历」「工作经验」。


「连续型变量」为连续型变量在规定范围区间内可以被任意取值。


比如豆瓣电影TOP250数据里的「年份」「评分」「评分人数」。



/ 02 / 相关分析


在上面,我们简述了变量的类型,也举了相关例子。


接下来我们针对两连续变量关系检验,进行相关分析


使用豆瓣TOP250里的数据,研究排名评价分数之间的关系。


读取数据并清洗。


import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# 读取文件
df = pd.read_csv('douban.csv', header=0, names=["quote""score""info""title""people"])
(dom1, dom2, dom3, dom4) = ([], [], [], [])
# 清洗数据,获取电影年份及国家,增加年份列及国家列
for i in df['info']:
    country = i.split('/')[1].split(' ')[0].strip()
    if country in ['中国大陆''台湾''香港']:
        dom1.append(1)
    else:
        dom1.append(0)
    dom2.append(int(i.split('/')[0].replace('(中国大陆)''').strip()))
df['country'] = dom1
df['year'] = dom2
# 清洗数据,建立评价人数列
for i in df['people']:
    dom3.append(int(i.replace('人评价''')))
df['people_num'] = dom3
# 生成电影排名列表
dom4 = [x for x in range(1251)]
df['rank'] = dom4
print(df)


在那一期的排名评分人数三维度图里,我们知道排名越靠前,评价人数越多,评分越高。


这只是我们直观上的推测,并不是用数据确确实实展示的。


相关分析就可以用数据来证明我们本次猜测的正确性。


首先我们通过散点图来看排名与评价分数之间的关系,看是否有所相关。


# scatter为散点图
df.plot(x='rank', y='score', kind='scatter')
plt.show()


这里由于排名排序问题显现出线形负相关,不过这并不影响分析。


你就默认正相关就好,即排名越靠前,分数越高。



通过散点图我们发现数据有线性相关关系。


那么就能使用皮尔逊(Pearson)相关系数对两变量的相关关系进行分析。


# corr()方法:计算两两相关的列,不包括NA/Null值 persion:标准相关系数
print(df[['rank''score']].corr(method='pearson'))


输出两变量相关系数,绝对值约为0.70,查表可知相关程度为高度。


那么结论就显而易见,排名与评价分数之间的关系为线性正相关!!!


相关分析除了通过相关系数分析,还可以通过散点矩阵图。


对多个变量之间的相关关系进行分析,去探索变量间的关系。


# seaborn回归/散点图
sns.pairplot(df[['score''people_num''year''country''rank']])
plt.show()


生成如下散点图,可以发现rank与score及people_num相关性较大(右上角两个图)。



接下来创建分组变量,指定国家为分组变量,来看中国和外国的豆瓣电影TOP250数据情况。


# 生成带辅助线的散点图矩阵,hue:分类
sns.pairplot(df[['score''people_num''year''country''rank']], hue='country', kind='reg', diag_kind='kde', size=1.5)
plt.show()


在这里能观察数据的拟合线及上下浮动范围,更加直观的了解变量间的情况。


不过国家分类倒是没什么发现,可能与数据样本过少有关。




/ 03 / 总结


本次只是一个简单的相关分析案例,里面涉及太多的数学知识我就不赘述了。


看了这本书我才知道,我要学的东西真的多...


不过能结合之前的相关案例去分析,我觉得就很不错了。


能够学以致用,有自己的想法。


文末点个赞,比心!!!





···  END  ···



©著作权归作者所有:来自51CTO博客作者mb5fe18ec4a4df8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python数据可视化:豆瓣电影TOP250
  2. Python数据可视化:浅谈数据分析岗
  3. 11种数据分析方法,别再说你不会了
  4. ThingJS官方示例(十一):基于数据矢量及贴图url开发OD线
  5. 使用内存NewSQL数据平台来处理实时数据流的三个好处
  6. 用Python实现手机抓包,获取当当图书差评数据!
  7. Python数据可视化:Python大佬有哪些?
  8. Python数据可视化:2018年北上广深空气质量分析
  9. 数据会说谎的真实例子有哪些

随机推荐

  1. 当我们走出三本的大门,现实给我们上了一课
  2. Android网络请求框架AsyncHttpClient (an
  3. 动画:面试官问我插入排序和冒泡排序哪个更
  4. COVID-19每日数据|04-06
  5. COVID-19每日数据|04-08
  6. Android: 八种燃爆了的菜单效果
  7. 超好看的弦图,Python一行代码就能做
  8. 不就是用Python做个动态图吗?看招
  9. 动画:用动画技巧记忆常见笔试 JS 类型转换
  10. 1024 小鹿自费给读者送书啦!