数据分析利器之Pandas

Pandas是一个python的开源库,它基于Numpy,提供了多种高性能且易于使用的数据结构。Pandas最初被用作金融数据分析工具而开发,由于它有着强大的功能,目前广泛应用于数据分析、机器学习以及量化投资等。下面来跟随作者一起认识下Pandas吧!

1    如何开始

Pandas安装方式十分简单,如果使用Anaconda,Anaconda默认就已经为我们安装好了Pandas,直接拿来用就可以了,推荐使用这种方式。

如果不用Anaconda,只需执行如下命令即可:

pip install pandas

像其他python库一样,使用之前需要导入,通常采用如下方式:

import pandas as pd

2   Pandas数据结构

Pandas的数据结构包括 SeriesDataFrame以及 Panel,这些数据结构基于 Numpy,因此效率很高。其中 DataFrame最为常用,是Pandas最主要的数据结构。所有Pandas数据结构都是值可变的,除 Series外都是大小(Size)可变的, Series大小不可变。

Series

Series是一维的类似的数组的对象,它包含一个数组的数据(任意NumPy的数据类型)和一个与数组关联的索引 。

可以看到Pandas默认为我们生成了索引,它的结构如下表所示:

0123
0.1027801.5230011.7700670.437553

我们也可以使用 index关键字为其指定索引:

DataFrame

DataFrame是二维的、类似表格的对象,是使用最为广泛的Pandas数据结构。DataFrame有行和列的索引,访问便捷。它可以被看作是Series的字典:

结构如下表所示

namegenderheightweight
0张三M17480
1李四F16048
2王五M18570

一方面,我们可以使用 columns关键字指定DataFrame列的顺序,DataFrame的列将会严格按照 columns所指定的顺序排列;另一方面,与Series相同,我们可以使用 index关键字为其指定索引:

需要注意的是,DataFrame的同一列允许有不同类型的值(数字,字符串,布尔等),这便意味着:我们可以将 王五weight设置为 F

   数据访问和遍历

DataFrame支持按下标访问:

也支持按索引访问:

因此,DataFrame也支持如下两种遍历方式:

   添加和删除列

如果我们想增加一列,也非常方便,如计算BMI指数:

仅需一行代码而无需遍历。

删除列:

5    添加和删除行

添加行

删除行

6    数据筛选

  • 按下标取出前两条记录
  • 按其他条件筛选

如找到BMI>20的记录:

DataFrame还支持许多其他的操作,篇幅有限,在此不一一展开。

7     Panel

Panel是三维的数据结构,可以看作是DataFrame的字典,这种数据结构使用很少,此处略过不提。

Pandas实战

学习技术是为了更好的工作和生活,抛开应用,技术也就失去了存在的意义。本文开篇中提到,Pandas作为数据分析工具的一个重要应用场景是量化投资,在此我想分享一下使用pandas的一个场景:

我想筛选出A股市场中过去60个交易日表现好的那些股票。关于表现好,也许每个人都有自己的看法,我的标准如下

  • 涨幅够大,区间累计涨幅达60%以上
  • 回撤小,区间内任意单个交易日跌幅不超过7%,包括高开低走7%(套人的不算好股票);区间内任意连续两个交易日累计跌幅不超过10%,包括连续两个交易日高开低走10%

我使用的数据源是TuShare,它提供了A股复权日线图,不过它没有提供复权数据的每日涨跌幅,所以我们需要对他进行处理:

此处使用了TALib,一个开源的金融数据分析工具。

完成初步的数据处理之后,我们就可以运行筛选条件了,截取代码片段如下:

最后的结果如下:

[('603986', '兆易创新'), ('603882', '金域医学'), ('603501', '韦尔股份'), ('300782', '卓胜微'), ('300622', '博士眼镜'), ('300502', '新易盛'), ('300492', '山鼎设计'), ('300433', '蓝思科技'), ('300223', '北京君正'), ('002917', '金奥博'), ('002892', '科力尔'), ('002876', '三利谱'), ('002850', '科达利'), ('002819', '东方中科'), ('002600', '领益智造'), ('002241', '歌尔股份'), ('000049', '德赛电池')]

可以看到其中科技股独领风骚,谁让我们大A是科技牛呢?

Image placeholder
Founder
未设置
  58人点赞

没有讨论,发表一下自己的看法吧

推荐文章
Python数据分析实战 | 爬遍拉勾网,带你看看数据分析师还吃香吗?

微信公众号:「Python读财」如有问题或建议,请公众号留言伴随着移动互联网的飞速发展,越来越多用户被互联网连接在一起,用户所积累下来的数据越来越多,市场对数据方面人才的需求也越来越大,由此也带火了如

Pandas数据分析——超好用的Groupby详解

微信公众号:「Python读财」如有问题或建议,请公众号留言在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分

AB test | 数据分析师面试必知 !

前言关于ABtest的重要性无需多言,数据、产品等从业人员几乎必知,好的数据科学家我想一定是知道理解业务比模型更为重要,而ABtest就是伴随着业务增长的利器。如果你心中的ABtest几乎都没有用到中

基于 Spark 的数据分析实践

转载本文需注明出处:微信公众号EAWorld,违者必究。引言:Spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷。Spark主要包含

如何避免人类偏见对数据分析产生影响

随着越来越多的企业开始采用机器学习技术以实现流程的自动化,人们也逐渐开始质疑计算机决策中的伦理含义。我们如何处理计算机系统中潜在的偏见?相对较少被提及但同样重要的,是人类本身的偏见,它与分析和商业决策

实现人工智能落地 你还差一个“数据分析流水线”的距离

在智慧生产场景,生产制造商可以在生产线上利用深度学习,尤其是图像识别,将产品的质量检测自动化。比如自动检测产品表面有没有划伤、有没有零部件的缺失、有没有标签的错位。研究表明,相比人工检测,智慧检测可以

调查:2019年数据分析市场面临的挑战有哪些?

分析和数据科学行业对人才的需求急剧增长,为该行业求职者提供了很多工作机会。无论是500强还是初创企业,每个团队都在使用分析来从数据中获得有价值的信息。然而,在人才、客户定位和收集数据等方面,这个行业仍

零基础的小白怎么学习数据分析?

微信公众号:「Python读财」如有问题或建议,请公众号留言作为一个从超级菜鸟阶段过来的人,也曾迷茫,也曾面对一大堆资料不知所措,从无到有踩过太多的坑,在这里分享一下我总结出来的数据分析学习路径,为了

最适合入门的Python数据分析实战项目

微信公众号:「Python读财」如有问题或建议,请公众号留言伴随着移动互联网的飞速发展,越来越多用户被互联网连接在一起,用户所积累下来的数据越来越多,市场对数据方面人才的需求也越来越大,由此也带火了如

windows利器使用与配置

1概述这篇文章主要讲述了一些windows下的"利器"级别工具的使用以及配置.2ListaryListary是一款强大的搜索工具,可以快速搜索过滤各种文件.下载地址.2.1基础配置右键进入配置选项,建

那个“炫酷狂拽”的数据可视化利器AntV 11.22版全新发布啦

导读AntV是一个数据可视化项目,也是一个团队,蚂蚁金服数据可视化团队,一群有爱有梦的人,怀揣「让人们在数据世界里获得视觉化思考能力」的梦想前行,希望成就智能时代全球领先的数据可视化解决方案,满足与日

基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器

如何合理地表示语言的内在意义?这是自然语言处理业界中长久以来悬而未决的一个命题。 在2013年分布式词向量表示(DistributedRepresentation)出现之前,one-hot是最常用的

【Linux 工具】服务器文件传输利器 lrzsz

场景  服务端开发人员经常会遇到的一个场景就是将本地的文件传到服务器上,或者把服务器上的文件下载到本地,那这个时候大家一般会用ftp服务,来完成这件事。但是如果服务器上并没有安装ftp服务的时候,这个

微服务架构的四大金刚利器

Photo@ChristopherCampbell 文 | 孔凡勇概述互联网应用发展到今天,从单体应用架构到SOA以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分

基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器

(由AI科技大本营付费 下载自视觉中国)作者|刘占亮一览群智技术副总裁编辑|Jane出品|AI科技大本营( ID:rgznai100)如何合理地表示语言的内在意义?这是自然语言处理业界中长久以来悬而未

数据结构与算法分析——开篇以及复杂度分析

开篇 你也许已经发现了,工作了几年,原以为已经是一只老鸟。但看到刚参加工作的同事,你发现,原来自己一直在原地踏步。跟新人相比,你的唯一优势就是对业务更熟悉而已,别的就没有什么优势了。 怎样才能够让自己

数据结构与算法分析——开篇以及复杂度分析

开篇你也许已经发现了,工作了几年,原以为已经是一只老鸟。但看到刚参加工作的同事,你发现,原来自己一直在原地踏步。跟新人相比,你的唯一优势就是对业务更熟悉而已,别的就没有什么优势了。怎样才能够让自己更上

Android兼容Java 8语法特性的原理分析

本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支

数据结构与算法分析——链表

链表链表是一种常见的数据结构,是一组有序的数据,每个链表中的数据项称为元素。它跟数组很像,二者对比学习会更容易理解和记忆。数组是内存中连续的一块,不会间断。链表在内存中不一定是连续的一块。如果内存只剩

数据结构与算法分析——队列

定义队列,和栈类似,也是一种操作受限的线性表数据结构。与栈结构不同的是,可以对队列2端操作,要求数据从一端进(入队),从另一端出(出队)。队列遵循"先进先出"的原则,即最先进队列的数据元素,同样要最先

数据结构与算法分析——栈

定义栈是一种操作受限的线性表,只支持在一端进行插入和删除操作(入栈和出栈)。后进先出、先进后出是它最大的特点。当某个数据集合只在一端插入和删除数据,并满足先进后出的特性时,就可以选择栈这种数据结构。实

Python分析42年高考数据,告诉你高考为什么这么难?

大数据文摘授权转载自数据森麟作者:徐麟对于已经工作的“上班族”来说,6月7号到9号三天无疑是兴奋到飞起的,终于迎来了令人愉悦的端午假期。然而有那么一群人,将在端午节日之际迎来人生特别重要的一次经历或者

我从来不觉得程序员是吃青春饭的!这里有169万份分析数据

阅读本文约需要5分钟程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型。在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多

医疗行业数据安全的主要风险和应对分析

作者:柳遵梁依据Verizon数据泄露报告中对客观现状、数据分布和数据流动等方面综合分析,医疗行业数据安全的主要风险包括如下几个方面:  一、人的安全风险和对策  1.人的安全风险是医疗数据安全的最大

Elasticsearch 数据写入原理分析

前言最近TL分享了下《Elasticsearch基础整理》https://www.jianshu.com/p/e82…,蹭着这个机会。写个小文巩固下,本文主要讲ES->Lucene的底层结构,然后详细