工具&方法丨划重点 ! 经济学专业学Python需要学哪些内容?——数据分析处理必知必会的知识点
也许会有专业软件工程师认为,Python的火热有些“过誉”了,但是在经济学乃至数据科学领域,Python的火热绝对是能够理解和值得期待的。大数据时代来临,任何一位想要在未来的经济学界立足的「有志青年」,都应该抓住这把“火”。本文将为那些还没有上手但准备上手的「有志青年」们梳理一份学习Python的内容清单,着重列出数据分析处理方面需要用到的模块。
注:以下知识点主要以 Python 的第三方包为主。
科普园地 / Science Park
Python的第三方包:Python 具有丰富的扩展性,成千上万的第三方扩展包不断为 Python 赋能,使得其能够承载各式各样的需求。一般代码前几行,如import pandas as pd ,就是在导入第三方包。得益于免费开源的设计理念,任何人都可以为其贡献第三包,反过来许多优秀的第三方包又促进更多的人使用Python,进而创造出更多的第三方包,如此形成一种良性循环。
毫不过分地说,学好 Pandas 甚至比学好 Python 更重要。因为正是Pandas的好用,才奠定了 Python 在数据科学领域的地位。
那么,Pandas 是什么?Pandas 是 Python 的第三方包,用于数据处理。Python 默认的数据格式,无论是列表还是字典,都不能很好地用于操作在现实中常见的二维数据。Pandas正是为解决此问题而生,Pandas 提供了一种名为 DataFrame 的数据格式,将数据储存为一个二维表的形式,再通过各种函数方法,对数据进行横向、纵向、亦或按条件的切片来对数据进行处理,最终得到需要的数据结果。
Pandas 提供了快速而高效的 DataFrame 对象,用于数据操作与综合索引(索引就是用来快速查找对象的,例如快速找到标示性别的一列)。通过 Pandas 你可以轻松读取CSV和文本文件、Microsoft Excel、SQL数据库或者HDF5格式的数据。并且基于各种索引与标签,你可以轻松创建数据切片(例如一个数据里标示年纪的切片),通过大数据集筛选特定子集(例如,筛选性别为男性、年龄大于18岁的成人男性样本)。
总结一下,无论是基础的数据操作,还是为日后扩展,Pandas 都是极为基础且重要的一款第三方包。
GitHub 项目地址
官方文档地址
https://pandas.pydata.org/pandas-docs/stable/
Numpy 是 Pandas 的一个依赖项(安装 Pandas 时会自动安装 Numpy),Pandas的高效率一部分原因就是归功于 Numpy 的强大。
Numpy 提供了一种比 Python 自带的数据运算更加高效的方法。简单理解,就是 Numpy 的运算比 Python 默认数据结构的运算更快,更高效。当你的分析涉及到数组运算,尤其是多维数组运算时,那你应当考虑学习使用 Numpy 。同时,Numpy 也提供了强大的线性代数、傅立叶变化、随机数等数学运算的功能。
总之,Numpy 是Python 数据处理的又一块基石,在机器学习和深度学习领域,Numpy 具有广泛的应用。所以学习 Numpy 到如何的深度,需要看你所研究的领域,是否需要用到较为高级的数学运算。
官方地址
官方文档
如果你熟悉 Matalab,可以查看
《与matlab比较》,也可以对照中文翻译版
通过 Pandas 进行数据处理,筛选到了需要的数据,那接下来需要做什么呢?当然是开始计量之旅喽!
很自然地,我们会想到将数据从 Pandas的DataFrame 导出成 CSV,再导入到 Stata 中,进行计量运算嘛?其实大可不必,为了避免海量数据导致无法导入stata的尴尬,可以在 Python中自己写一个 OLS 函数,然后反复调用即可。(此时可能有读者冒出了大量的 「黑人问号.jpg」)
关注本公众号的读者应该已经阅读过下面这篇:工具&方法 | 6行代码教你用python做OLS回归
是的 Python 当中也有计量库了:Statsmodels 。Statsmodels 是一个Python的第三方模块,他封装了许多计量模型,方便学者直接调用。所谓封装,就相当于 Stata 中一个 reg 命令,代表了最基础的 OLS 回归命令,在Statsmodels 中也有类似 reg 的语句,提供给 OLS 估计。详细的内容可以参考工具&方法 | 6行代码教你用python做OLS回归 ,以及下面的官方链接。
科普园地 / Science Park
程序的封装:封装就是隐藏一些对象的属性和实现细节,仅对外公开接口;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”(在 Python 中就是 class ) ,方便其他人使用自己的代码。更将形象的比喻,可以用瑞士军刀来举例子1,一把瑞士军刀相当于封装了小刀、开瓶器、剪刀等功能,然后当你需要用剪刀时,拨出剪刀这个“接口”即可。类似的,在写代码的过程中,你也可以把一些常用的方法写出特定的函数进行封装,上例中的 Statsmodels 就封装了计量的函数方法。
不得不说,通过 Statsmodels,Python 中做计量的成本大大降低,学习 Python 对于经济学学生来说,也能做到「全程无忧」式的使用体验。
官方地址
官方示例
https://www.statsmodels.org/stable/examples/index.html
如今许多大数据被存放在以MySQL、Oracle为代表的sql数据库中,相比于 Stata ,Python还可以很容易地链接到sql数据库,直接对数据库内的数据进行操作。在Python当中,通过 pymysql 能够链接到 mysql 数据库,通过 cx_oracle 能够链接到 Oracle 数据库。
如果你是在总的大数据集中筛选出自己需要子集再进行操作。并且你对SQL 语句不熟悉,还可以使用 sqlachemy 一类的ORM框架的方式,跳过原生 SQL 语句,通过类似 Pandas 的筛选语句的方式来操作数据库查询,获取需要的数据子集。再将数据储存为 DataFrame 格式,利用 Pandas 进行精细化的二次处理,再通过上面提到的 Statsmodels 等第三方包进行计量处理。但是更加复杂的数据匹配融合,则另当别论了。
官方地址
https://www.sqlalchemy.org/
小编整理的经济学学生需要用的数据处理相关的包已经介绍完毕了,简单总结一下:
(1)当你拿到数据是 CSV 一类格式的数据时,通过 Pandas 将文件读取为一个 DataFrame,然后对其按需求进行筛选和运算,得到自己需要的数据集。
(2)如果数据储存在 SQL 数据库中,通过Python 连接数据库,运用 ORM 框架或者 原生 SQL 语句对数据进行筛选,拿到自己需要子集后,读取到 DataFrame 中,在Pandas中再进行更加精细化的处理,得到真正需要的数据集。
(3)以上数据集可以通过 Python 的Statsmodels进行计量分析。
至此,一个数据处理 Workflow(工作流)在 Python 得到完整的体现。
根据本文的阅读的阅读数量和点赞情况,我们会考虑基础推出数据获取(爬虫)、数据可视化的相关内容哦。至于先做哪部分内容,也由亲爱的读者朋友们投票决定~
►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
数据呈现 | R绘图:南丁格尔图,展示全国现制饮品店密度分布
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注