python pandas 增加一行怎样高效地添加一行数据

数据界华山论剑:R与Python巅峰对决--百度百家
数据界华山论剑:R与Python巅峰对决
分享到微信朋友圈
如果你是数据分析领域的新兵,那么你一定很难抉择——在进行数据分析时,到底应该使用哪个语言,R还是Python?在网络上,也经常出现诸如“我想学习机器语言,我应该用哪个编程语言”或者“我想快速解决问题,我应该用R还是Python”等这类问题。尽管两个编程语言目前都是数据分析社区的佼佼者,但是它们仍在为成为数据科学家的首选编程语言而战斗。今天,就让我们从数据科学的角度,一步步比较这两大编程语言。
大数据文摘作品,欢迎个人转发朋友圈;其他机构、自媒体转载,务必后台留言,申请授权。
来源|DataCamp
编译|于婷婷,魏子敏,康欣 &
#1 对阵双方介绍
LadiesandGentlemen,让我们隆重的介绍今天的对阵双方:R和Python!
R语言当前版本是2015年6月更新的3.2.1版。Python2当前版本是2015年5月更新的2.7.10版,Python3当前的版本是2015年2月更新的3.4.3版。
R语言是RossIhaka和RobertGentleman于1995年开发的,作为贝尔实验室S编程语言的一种实现,其开发环境主要由C语言,Fortran和R来完成。Python的发布年份其实远在R之前。GuidoVanRossum于1991年开发完成了Python,并由Python软件基金会(PSF)负责其发展。其开发灵感主要来自C语言和Modula-3,部分来自ABC语言。Python的名字取自喜剧蒙提·派森的飞行马戏团(MontyPython'sFlyingCircus)。
R语言是RossIhaka和RobertGentleman于1995年开发的,作为贝尔实验室S编程语言的一种实现,其开发环境主要由C语言,Fortran和R来完成。Python的发布年份其实远在R之前。GuidoVanRossum于1991年开发完成了Python,并由Python软件基金会(PSF)负责其发展。其开发灵感主要来自C语言和Modula-3,部分来自ABC语言。Python的名字取自喜剧蒙提·派森的飞行马戏团(MontyPython'sFlyingCircus)。
双方的用户群也有一定的差异。R主要用于学术和研究领域,如今正在快速拓展其企业市场的运用。Python的使用者,是那些想深入钻研数据分析或者应用统计技术的程序员,以及向数据科学寻求帮护的开发者。用一句话总结:“越接近统计研究跟数据分析人,越倾向R;越接近工程开发工程环境的人,越倾向Python”。
R和Python都得到大量的社区支持,包括邮件列表(MailingLists)、用户贡献的文档、以及Stackoverflow网站。此外,R还可以从研究人员、数据科学家、统计学家和数量分析专家那里得到更多的支持;而Python则从开发者和程序员那里得到的支持。
从实用性来讲,R通过几行代码就可以写出统计模型,尽管R有样式表,但并不是每个人都使用它们,可以用若干种方式写出同样的功能。在Python中写代码和调试代码则更容易一些,主要是因为它的“优美”语法。但是代码的缩进会影响它的意思。并且,在Python中,永远只有一种方式来写同样的功能。
在灵活性方面,在R中使用复杂的公式很容易。各种各样的统计检验和统计模型都是现成的并且容易使用;相比R,Python在完成以前没有做过的新奇的事情上,很灵活,开发人员也会用它写网站或其它应用的脚本。
关于易学习性,开始学习R时有一个陡峭的学习曲线,一旦了解了最基本知识,就能很容易地学习更高级的知识。因此,对于有经验的程序员,R并不难。建议R的学习者查看DataCamp上的练习和教程。
由于Python看重可读性和易用性,使得它的学习曲线相对比较低并且平缓。因此,对于初级程序员,Python被认为是一个很好的编程语言。对于Python学习者的建议是,尝试用《笨办法学Python》学习的同时看视频做练习。
其实R与Python并不是完全孤立的,在R中用户可以通过rPython包运行Python代码,从Python传递或获取数据,调用Python函数或者方法。而在Python中也可以使用RPy2包运行R代码,这提供了一个从Python到R的底层接口。
两者都有自己的代码库。CRAN(TheComprehensiveRArchiveNetwork)是一个很大的R包库,用户很容易为其贡献代码。R包是一个包含R函数、数据和编译代码的集合,R包在R中用一行代码即可安装。PyPi(PythonPackageIndex)是Python软件库,用户可以为PyPi贡献代码,但实践起来有点困难。
计算机科学教授NormMatloff曾说过,“Python并未建立起一个能与CRAN媲美的巨大的代码库,R在这方面领先巨大。但是,统计学并不是Python的中心任务。”
以上,从定性的角度进行了比较。现在,看看双方的定量数据。小二,上数据!
先看人气排名,下图左边为年2月R和Python人气比较(Tiobe指标),右边为Redmonk排名,它比较了GitHub和Stackoverflow上编程语言的相对性能。
再看工作和薪资,2014DiceTech薪金调查显示,具有高薪技能和丰富经验的R使用者的平均工资为115,531美元,而Python则为94,139美元。
#2 数据分析战场
首先是用途。R的主要应用场景是,当数据分析任务需要独立运算,或者需要在单个服务器上分析;Python的一般应用场景是,数据分析任务需要与网页应用整合,或者当统计代码需要并入成品数据库。
按任务类型划分,做探索性研究时,R语言很适合初学者。几行代码便可写出统计模型;而作为一个完整成熟的程序语言,Python是为产品使用进行算法执行的一个工具。
数据处理能力上,使用R进行数据分析很容易上手,因为它具有庞大数量的包、方便使用的检验以及在使用公式方面的优势。做基本数据分析时,R语言更方便,不需要额外安装包,大的数据库需要使用类似data.table和dplyr包。过去,Python数据分析包的幼年期曾是个问题,但是现在已经得到很大的改善,用Python进行数据分析时,你需要使用NumPy、Pandas和其它的程序包。
如何上手也是比拼的一个方面。R的集成开发环境(IDE)可以选择RStudio。R最受欢迎的程序包有:dply、plyr和data.table(易于操作数据),stringr(易于操作字符串),zoo(处理规则和不规则时间序列),ggvis、lattice和ggplot2(数据可视化),caret(机器学习),建议初学者查看DataCamp上的课程和教程。
Python的集成开发环境(IDE)有很多,其中Spyder和PythonNotebook最受欢迎。建议初学者查看Rodeo(被称为“Python到数据科学IDE”)。Python最受欢迎的程序包有:pandas(易于操作数据),SciPy/NumPy(科学计算),sckikit-learn(机器学习),matplotlib(用于作图),statsmodels(数据探索、统计模型估计、统计检验和单元测试)。
关于技术支持,使用R进行数据分析有很多技术支持,包括Stackoverflow、Rdocumentation,(R文档整合)和R-help邮件列表。
Python的数据分析问题可以通过以下方式获得支持:Stackoverflow和邮件列表。
邮件列表包括pydata(关于使用Python进行数据分析和Pandas包)、pystatsmodels(Statsmodels和pandas包的问题)、numpy-discussion(Numpy包的问题)和sci-pyuser(大部分是SciPy或者科学问题)
同样,定性对比后再看看R和Python的量化战争!
从整体数据来看,在做数据分析时使用R的人数要多于使用Python(下图左:2014用于数据分析的程序语言)。在2014年,有23.45%的人同时使用R与Python(下图右:2014年R和Python使用分析)。
在年5月之间,Stack Overflow上问题标签是”R” 和/或 “Python”、“Pandas”的数量,R明显领先。在日到4月10日之间,在twitter上统计rstats, python numpy, python pandas和numpy这几个关键词,活跃度最大的是rstats。
工作和薪资方面,O’Reilly 2014数据科学工资调查显示,R和Python平均年收入范围都是11万美元到12.5万美元之间。上R与Python的工作趋势显示,Python的工作需求量高于R。
现在很多人都选择同时使用R和Python。有的策略是利用两种语言最好的部分——初始分析在R语言中进行,在需要更严格的分析、团队工作或者发布代码和数据产品时开始转换到Python。有人是用R进行统计检验、画图和检查大数据,必须写算法时,则更倾向于用Python。也有人说,更倾向于在通用语言中做数学计算,而不是用数学语言进行通用编程。
#3 总决选:优缺点
现在来比较一下两者的优缺点。R最大的优点在于其作图能力,俗话说,一图抵千言,相比单看原始数据,可视化后的数据能被更高效、更有效的理解。利用ggplot2可以绘制优美的图表,使用图表算法创造图层、定制图表;lattice易于展示多变量关系;rCharts从R中建立、定制和呈现交互式Java可视化;googleVis利用Google表格工具在R中可视化数据;用ggvis对一个网页浏览器进行渲染时,可以实现图像的交互式语法,例如在R中可视化Facebook好友。
IPython最大的优点在于,IPythonNotebook使得用Python分析数据变得容易,它可以将你的分析放在一个文件中。用Python处理数据可以简化工作流程。它是一个组合,其中包括:交互式Python数据探索、在一个环境下为文档提前写好程序、文本和公式。你可以跟同事分享笔记本,并且不用他们安装任何东西。IPython大大减少了管理代码、输出和笔记本文件的时间,这样可以有更多的时间做实际工作。
R的生态系统是它的另一项优势,先进的界面程序包使其能与开源语言进行交流,这让你把工作流程连成一串,对数据分析尤其有用。程序包可以从:CRAN(“TaskViews”列出了大量可用的R语言程序包)、Bioconductor(生物信息学的开源软件)、GitHub(基于网络的Git库主机服务)获得,在Rdocumentation(首个R文档聚合器)中很容易搜索到这些资源。R的用户社区也做得非常优秀,包括Meetup群组(其中一些由R用户社区的公司资助)、博客和社交网络。
Python是一种通用语言,其另一个优点在于它的可读性和学习曲线;同时,Python简单直观,它对可读性的重视更放大了这一特征。这就解释了为什么Python的学习曲线相对平缓,因而很多程序员很熟悉它。并且,你写一个程序的速度也得到正面影响:编程时间更少了,玩耍时间更多了。
Python的测试框架确保代码的可重复性和可靠性,一个内置低壁垒的测试框架能够支持一个很好的测试覆盖率。其测试工具分类包括:UnitTestPython(标准库中首个测试框架)、Nose(UnitTest的扩展,很多程序包使用它,如pandas)、DocTest(基于Python标准解释器的输出很容易生成测试),Pytest(当进行复杂的函数测试时,可以进行小测试)。
R有一个不可替代的优势:统计的通用语言。R是统计学家为统计学家开发的,他们通过R代码和程序包交流统计分析思想和方法,即使是不会计算机编程语言的统计学家、工程师和科学家也会觉得R容易使用,因此提高了产业采用率。R也被用在金融、药物、医学和市场等领域,并且其作为商业分析工具的地位正在不断增长,在商业领域的最重要价值正被一些有才能的人所了解使用,R在学术界已经被广泛使用。R的使用量正在快速增长,其在学术文章中处于常用软件排名第三的位置(紧随SAS和SAP),且这一位置正在被巩固。
与R相比,Python是一个多用途语言。作为一个被大多数程序员所熟知的普遍且易于理解的编程语言,Python也能把不同背景的人聚集到一起。例如,一些机构不想雇佣数据分析师或者雇佣新的数据分析师比较困难,就会培训老员工使用Python。这意味着,Python是一个现成的编程语言,它能够作为一个单独的工具与你工作流程中任意一部分结合。
两者的缺点是什么呢?R运行慢,而这一点是故意为之。R的设计目的是使数据分析和统计分析变得容易,而不是为了让你的电脑“活得更轻松”。它有一个不完整的非正式定义,主要通过实现工作的方式来定义。除了设计和实现,大量R代码慢的原因很简单——代码写的很差。为改善这一点,可使用提高R性能的程序包:pqR(R翻译器的一个新版本)、renjin、FastR(在Java中重新写R)、Riposte(一个很快的解析器和JIT)、RevoScaleR(用来处理大数据的商业软件)、Foreach(用来提高并行编程的商业工具)。
Python最大的问题在于其可视化,选择数据分析软件时,可视化是一个重要原则。虽然Python有一些很好的可视化程序库,包括:Seaborn(基于matplotlib的程序库)、Bokeh(交互式可视化程序库)和Pygal(建立动态可伸缩向量图形(SVG))。但Python提供的可选择程序库过多,且与R对比,在Python中进行可视化有些复杂,呈现的结果也并不是很令人满意。
因为由统计学家开发,R另一个缺点是它陡峭的学习曲线。尽管任何人都可以使用GUI得到结果,但没有人能够完全避开写程序,并且找程序包很花时间。你可以通过使用正确的工具解决这个问题,利用以下这些资料可以帮组你克服这个陡峭的学习曲线:包括DataCamp上的练习和教程和上Rdocumentation搜索程序包。
Python另一个问题是它还不成熟,造成一种更受限制的方式去思考数据分析。截至目前,没有模块能够代替基本R程序包的100个。Python正在努力客服这一问题,其中一些解决办法包括:IPython中的R扩展允许在IPythonNotebook中方便使用R;现有资源和约定格局充当了一个重要角色:Matlab通常用于发布开放的研究代码,Python用于数学,R用于统计。Mlabwrap连接了Python和Matlab,但是有些缺点,因此你需要学会两种程序语言,并且需要有一个Matlab许可证。
两种语言有很多共同优点。其一是开源,R和Python都是对任何人免费,其它统计软件(如SAS和SPSS)都是商业工具。
其二是他们都是高级工具,很多统计学的新进展会先在R和小范围的Python开源程序包中出现,这比商业平台要早。
第三是它们都提供在线社区,相对商业软件提供收费的用户支持,R和Python利用在线社区对它们相应的用户提供支持。
最后,二者使用者的薪水都比较高,根据O’Reilly2013数据科学工资调查显示,主要使用开源工具的数据科学家(130,000美元)比使用商业工具的数据科学家(90,000美元)的工资中值更高。
#4那么赢家是……
最后的结果是平局!哪个工具更适合,取决于你这个数据科学家如何去挑选一个最适合你需要的程序语言。下面的问题可以指导你做出决定。
1.你要解决什么样的问题
2.你学习一门程序语言的成本?学习一个能更好地解决问题的新系统会花费时间,但依旧使用你熟悉的系统并不能解决你要解决的问题。
3.在你的领域最常用的工具是什么?
在你的领域中还有什么可用的工具,它们和那些常用工具有什么关系?
译者简介:
于婷婷:统计研究生毕业,爱好编程和数据分析。研究生期间主要利用R语言和XML编辑可视化分析工具。对大数据技术和发展很感兴趣,也希望将来可以在这个行业发展。目前在美国生活读书,希望能与有共同兴趣的朋友沟通交流,和大家一同进步。
魏子敏:香港中文大学新闻传播学硕士,硕士期间利用大数据分析媒体报道的政治走向,2012年美国大选期间参与美国加州民主党竞选工作,搜集选民数据并分析数据反应的政治走向。希望使用更科学的数据做更好的新闻,望与更多志同道合的朋友共同交流进步。
康欣:博士,多年从事图像及数据处理和分析、计算机视觉、模式识别、机器学习、增强现实等领域的技术研究和创新应用,现为西门子中国研究院高级研究员。希望借此平台,与大数据分析爱好者以及专家学者交流、合作。
专注大数据,每日有分享
阅读:3622
分享到微信朋友圈
在手机阅读、分享本文
还可以输入250个字
推荐文章RECOMMEND
阅读:7084
阅读:16万
阅读:13万
阅读:12万
热门文章HOT NEWS
经济增长比中国更快、人口红利比中国还多,印度人总是倾向于认为其...
不八卦会死星人
网游圈的那些事
大佬鸣(丛硕鸣)的体育天地
娱乐资本论
阿尔法工场
百度新闻客户端
百度新闻客户端
百度新闻客户端
扫描二维码下载
订阅 "百家" 频道
观看更多百家精彩新闻下次自动登录
现在的位置:
& 综合 & 正文
利用Python进行数据分析——pandas入门(五)(4)
1、排序和排名
根据条件对数据集排序(sorting)也是一种重要的内置运算。要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象:
In [80]: obj = pd.Series(range(4), index=['d', 'a', 'b', 'c'])
In [81]: obj.sort_index()
dtype: int64
而对于DataFrame,则可以根据任意一个轴上的索引进行排序:
In [82]: frame = pd.DataFrame(np.arange(8).reshape((2, 4)), index=['three', 'one'], columns=['d', 'a', 'b', 'c'])
In [83]: frame.sort_index()
[2 rows x 4 columns]
In [84]: frame.sort_index(axis=1)
[2 rows x 4 columns]
数据默认是按升序排序的,但也可以降序排序:
In [85]: frame.sort_index(axis=1, ascending=False)
[2 rows x 4 columns]
若要按值对Series进行排序,可使用其order方法:
In [86]: obj = pd.Series([4, 7, -3, 2])
In [87]: obj.order()
dtype: int64
在排序时,任何缺失值默认都会被放到Series的末尾:
In [88]: obj = pd.Series([4, np.nan, 7, np.nan, -3, 2])
In [89]: obj.order()
dtype: float64
在DataFrame上,你可能希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给by选项即可达到该目的:
In [90]: frame = pd.DataFrame({'b': [4, 7, -3, 2], 'a': [0, 1, 0, 1]})
In [91]: frame
[4 rows x 2 columns]
In [92]: frame.sort_index(by='b')
[4 rows x 2 columns]
要根据多个列进行排序,传入名称的列表即可:
In [93]: frame.sort_index(by=['a', 'b'])
[4 rows x 2 columns]
排名(ranking)跟排序关系密切,且它会增设一个排名值(从1开始,一直到数组中有效数据的数量)。它跟numpy.argsort产生的间接排序索引差不多,只不过它可以根据某种规则破坏平级关系。接下来介绍Series和DataFrame的rank方法。默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的:
In [95]: obj.rank()
dtype: float64
也可以根据值在原数据中出现的顺序给出排名:
In [96]: obj.rank(method='first')
dtype: float64
当然,你也可以按降序进行排名:
In [97]: obj.rank(ascending=False, method='max')
dtype: float64
DataFrame可以在行或列上计算排名:
In [98]: frame = pd.DataFrame({'b': [4.3, 7, -3, 2], 'a': [0, 1, 0, 1], 'c': [-2, 5, 8, -2.5]})
In [99]: frame
[4 rows x 3 columns]
In [100]: frame.rank(axis=1)
[4 rows x 3 columns]
2、带有重复值的轴索引
直到目前为止,我所介绍的所有范例都有着唯一的轴标签(索引值)。虽然许多pandas函数(如reindex)都要求标签唯一,但这并不是强制性的。我们来看看下面这个简单的带有重复索引值的Series:
In [101]: obj = pd.Series(range(5), index=['a', 'a', 'b', 'b', 'c'])
In [102]: obj
dtype: int64
索引的is_unique属性可以告诉你它的值是否是唯一的:
In [103]: obj.index.is_unique
Out[103]: False
对于带有重复值的索引,数据选取的行为将会有些不同。如果某个索引对应多个值,则返回一个Series;而对应单个值的,则返回一个标量值。
In [104]: obj['a']
dtype: int64
In [105]: obj['c']
Out[105]: 4
对DataFrame的行进行索引时也是如此:
In [107]: df = pd.DataFrame(np.random.randn(4, 3), index=['a', 'a', 'b', 'b'])
In [108]: df
0...328512
1...899090
b -1...699475
0...833157
[4 rows x 3 columns]
In [109]: df.ix['b']
b -1...699475
0...833157
[2 rows x 3 columns]
3、汇总和计算描述统计
pandas对象拥有一组常用的数学和统计方法。它们大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。跟对应的NumPy数组方法相比,它们都是基于没有缺失数据的假设而构建的。接下来看一个简单的DataFrame:
In [110]: df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3]],
index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
In [111]: df
[4 rows x 2 columns]
调用DataFrame的sum方法将会返回一个含有列小计的Series:
In [112]: df.sum()
dtype: float64
传入axis=1将会按行进行求和运算:
In [113]: df.sum(axis=1)
dtype: float64
NA值会自动被排除,除非整个切片(这里值的是行或列)都是NA。通过skipna选项可以禁用该功能:
In [114]: df.mean(axis=1, skipna=False)
dtype: float64
有些方法(如idxmin和idxmax)返回的是间接统计(比如达到最小值或最大值的索引):
In [115]: df.idxmax()
dtype: object
另一些方法则是累计型的:
In [116]: df.cumsum()
[4 rows x 2 columns]
还有一种方法,它既不是约简型也不是累计型。describe就是一个例子,它用于一次性产生多个汇总统计:
In [117]: df.describe()
[8 rows x 2 columns]
对于非数值型数据,describe会产生另外一种汇总统计:
In [118]: obj = pd.Series(['a', 'a', 'b', 'c'] * 4)
In [119]: obj.describe()
dtype: object
4、相关系数与协方差
有些汇总统计(如相关系数和协方差)是通过参数对计算出来的。我们来看几个DataFrame,它们的数据来自Yahoo! Finance的股票价格和成交量:
import pandas.io.data as web
all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2000', '1/1/2010')
price = DataFrame({tic: data['Adj Close']
for tic, data in all_data.iteritems()})
volume = DataFrame({tic: data['Volume']
for tic, data in all_data.iteritems()})
雅虎链接已经失效,不能访问获取数据。
接下来计算价格的百分数变化:
In [1]: returns = price.pct_change()
In [2]: returns.tail()
AAPL GOOG IBM MSFT
0....002747
0....005479
-0....006812
0....013532
-0....015432
Series的corr方法用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数。与此类似,cov用于计算协方差:
In [3]: returns.MSFT.corr(returns.IBM)
Out[3]: 0.68838
In [4]: returns.MSFT.cov(returns.IBM)
Out[4]: 0.
DataFrame的corr和cov方法将以DataFrame的形式返回完整的相关系数或协方差矩阵:
In [5]: returns.corr()
AAPL 1....424550
GOOG 0....443334
0....496093
MSFT 0....000000
In [6]: returns.cov()
AAPL 0....000309
GOOG 0....000205
0....000216
MSFT 0....000516
利用DataFrame的corrwith方法,你可以计算其列或行跟另一个Series或DataFrame之间的相关系数。传入一个Series将会返回一个相关系数值Series(针对各列进行计算):
In [7]: returns.corrwith(returns.IBM)
AAPL 0.410648
GOOG 0.390692
MSFT 0.496093
传入一个DataFrame则会计算按列名配对的相关系数。这里,我计算百分比变化与成交量的相关系数:
In [8]: returns.corrwith(volume)
AAPL -0.057461
MSFT -0.014175
传入axis=1即可按行进行计算。无论如何,在计算相关系数之前,所有的数据项都会按标签对齐。
&&&&推荐文章:
【上篇】【下篇】苹果/安卓/wp
苹果/安卓/wp
积分 3329, 距离下一级还需 271 积分
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡下一级可获得
道具: 千斤顶
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
开心签到天数: 117 天连续签到: 2 天[LV.6]常住居民II
本帖最后由 fantuanxiaot 于
15:39 编辑
本系列帖子“量化小讲堂”,通过实际的列子让大家知道如何使用Python、pandas进行金融数据处理。帖子主要面向来自金融领域的入门学习者,大神请轻拍。希望能对大家有帮助。
之前的系列文章:
注:很多小伙伴问我上篇文章中用到的数据在哪里下载,是在这个,这里可以下载到所有股票、从上市日起的交易数据,财务数据。
【量化小讲堂 - Python、pandas技巧系列】windows下如何安装Python、pandas
本篇内容主要讲如何安装Python和pandas。Python比较好安装,而pandas比较难装,当时装了我一整天。pandas是Python下面的一个package,专门用于金融数据的分析,简直是神器。这里有pandas的简单入门介绍
本篇主要涵盖以下三部分内容:
1.Python、Pycharm的安装
2.使用Pycharm创建、运行Python程序
3.安装pandas
1.Python、Pycharm的安装
从Python官网下载windows版本的Python,要下载python2,不要下载python3。鉴于大家可能上了官网都不知道下载哪个版本(我自己一开始就是),我已经将安装文件上传到百度云,下载地址在附件中。安装文件下载好之后,就像一般的软件一样,一直点击next就能安装。
Pycharm是一个ide,说简单点就是一个用来编写Python程序的软件,也是个神器,可以让我们更加方便的编写Python程序。我们后面安装pandas就需要用到它。Pycharm有收费版本也有免费版本,我们用免费版本就已经绰绰有余了。可以去官网下载,因为是国外的网站,下载速度可能很慢,我已经将安装文件上传到百度云,下载地址在附件中。
下载好之后一路点击next就能安装好。
2.使用Pycharm创建、运行Python程序
安装好Python和Pycharm之后,我们打开pycharm(桌面上应该有快捷方式),打开之后出现下图。
09:57:21 上传
点击创建create new project,出现下图;
13:49:57 上传
这里需要在红框中填写一个路径地址。这里解释一下这个路径,每当我们新建一个Python项目,一般是创建个新的空文件夹,把和这个项目相关的程序、数据等内容都放在这个文件夹中,方便管理。红色框中的路径就是指向这个文件夹。我这里这个文件夹叫demo,填写好之后点击create,出现下面这个画面:
13:54:38 上传
顺序点击File,New,Python File,填写文件名,这就创建了一个Python程序文件,如下图所示:
14:01:25 上传
输入一行简单的代码 print 'Hello World!',顺序点击Run,Run 'demo',就可以运行程序,并且查看输出了,结果如下图:
14:04:30 上传
以上就是一个简单的Python程序
3.安装pandas
pandas是Python下面的一个库,一般来说安装库都是非常麻烦的,因为需要在命令行下面操作的,利用pip, easy_install等工具,对于非计算机专业的人来说简直是噩梦。幸好有了Pycharm,它可以帮我们很方便的安装各类库。下面以安装pandas为例,介绍如何使用Pycharm安装package:
顺序点击File,Settings,出现下面这个设置页面:
14:10:04 上传
然后点击Project,Project Interpreter,如下图所示,点击页面最右边的+号:
14:16:10 上传
出现下面这个页面:
14:16:13 上传
在搜索框中输入pandas,点击最下方的Install Package,根据网速快慢,等待不定的时间,就完成了安装,如下图所示:
14:20:03 上传
安装过程中可能会提示:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from
只要按照提示说的的去下载一个VC就可以了。这样就安装好了pandas。
然后在按照同样的流程安装好其他一些pandas依赖的package,分别是:numpy,dateutil,可能还有其他。
安装好之后试着运行下面这个程序,如果没有报错,就说明完全安装好pandas了。如果报错,一般是因为缺少依赖的库,按照上述方法继续安装就可以了。
15:11:09 上传
之后会讲的内容:
现在想到的之后几期会讲的内容:
【量化小讲堂 - python & pandas技巧系列】使用python计算KDJ指标
【量化小讲堂 - python & pandas技巧系列】使用python计算MACD指标
【量化小讲堂 - 投资策略系列】KDJ、MACD指标双金叉选股效果
【量化小讲堂 - python & pandas技巧系列】使用pytho将日线数据转换成周线、月线数据
更多的内容还没想好,大家要是有什么想知道可以留言回复哈 :)
附件中是Python和Pycharm的安装程序在百度云下载地址,免费,回复可见:
本帖隐藏的内容
(253 Bytes)
15:06:59 上传
支持楼主:、
购买后,论坛将奖励 10 元论坛资金给楼主,以表示您对TA发好贴的支持
载入中......
09:59:53 上传
15:09:43 上传
发表于173楼
很多同学反应pandas、numpy等package安装不了,下面补充一个重要的步骤:
在安装python的时候,不断点击下一步下,在如下步骤的时候需要注意一下:
上图中最后一个选项“add python.exe to path”,需要设置一下,具体设置方法如下图所示:
设置完了之后,成为下图的样子,然后继续下一步就行了。
发表于28楼
pandas不是有binary release?wheel安装也不错啊,嘿嘿。
发表于17楼
请问楼主,安装哪一个的?
精彩帖子赞赞的
总评分:&经验 + 60&
论坛币 + 110&
学术水平 + 5&
热心指数 + 7&
信用等级 + 5&
本帖被以下文库推荐
& |主题: 598, 订阅: 31
& |主题: 1292, 订阅: 513
& |主题: 93, 订阅: 60
& |主题: 705, 订阅: 133
& |主题: 239, 订阅: 53
& |主题: 99, 订阅: 25
& |主题: 1036, 订阅: 121
不管去哪里 只要在路上
Ψ▄┳一大卫卍卐席尔瓦
设置好了!!!
总评分:&经验 + 5&
论坛币 + 5&
赞~\(≧▽≦)/~
饿死在金字塔顶的人
谢谢普及,非常感谢~
总评分:&经验 + 36&
论坛币 + 36&
fsgdsgdfgdsgdsfg
谢谢!!!!!!
这个可以有,留着慢慢学习
初级学术勋章
初级学术勋章
初级热心勋章
初级热心勋章
中级热心勋章
中级热心勋章
中级学术勋章
中级学术勋章
初级信用勋章
初级信用勋章
中级信用勋章
中级信用勋章
高级热心勋章
高级热心勋章
高级学术勋章
高级学术勋章
特级学术勋章
特级学术勋章
特级热心勋章
高级热心勋章
高级信用勋章
高级信用勋章
特级信用勋章
高级信用勋章
一级伯乐勋章
一级伯乐勋章
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师

我要回帖

更多关于 python 添加第一行 的文章

 

随机推荐