Python数据处理的瑞士军刀:pandas

####第一篇:基本数据结构介绍

####一、Pandas介绍

终于写到了作者最想介绍,同时也是Python在数据处理方面功能最为强大的扩展模块了。在处理实际的金融数据时,一个条数据通常包含了多种类型的数据,例如,股票的代码是字符串,收盘价是浮点型,而成交量是整型等。在C++中可以实现为一个给定结构体作为单元的容器,如向量(vector,C++中的特定数据结构)。在Python中,pandas包含了高级的数据结构Series和DataFrame,使得在Python中处理数据变得非常方便、快速和简单。

pandas不同的版本之间存在一些不兼容性,为此,我们需要清楚使用的是哪一个版本的pandas。现在我们就查看一下量化实验室的pandas版本:

1

import pandas as pd

2

pd.__version__

'0.14.1'

pandas主要的两个数据结构是Series和DataFrame,随后两节将介绍如何由其他类型的数据结构得到这两种数据结构,或者自行创建这两种数据结构,我们先导入它们以及相关模块:

1

import numpy as np

2

from pandas import Series, DataFrame

####二、Pandas数据结构:Series

从一般意义上来讲,Series可以简单地被认为是一维的数组。Series和一维数组最主要的区别在于Series类型具有索引(index),可以和另一个编程中常见的数据结构哈希(Hash)联系起来。

#####2.1 创建Series

创建一个Series的基本格式是s = Series(data, index=index, name=name),以下给出几个创建Series的例子。首先我们从数组创建Series:

1

a = np.random.randn(5)

2

print "a is an array:"

3

print a

4

s = Series(a)

5

print "s is a Series:"

6

print s

a is an array:

[-1.24962807 -0.85316907  0.13032511 -0.19088881  0.40475505]s is a Series:0   -1.2496281   -0.8531692    0.1303253   -0.1908894    0.404755dtype: float64

可以在创建Series时添加index,并可使用Series.index查看具体的index。需要注意的一点是,当从数组创建Series时,若指定index,那么index长度要和data的长度一致:

1

s = Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

2

print s

3

s.index

a    0.509906b   -0.764549c    0.919338d   -0.084712e    1.896407dtype: float64

Index([u'a', u'b', u'c', u'd', u'e'], dtype='object')

创建Series的另一个可选项是name,可指定Series的名称,可用Series.name访问。在随后的DataFrame中,每一列的列名在该列被单独取出来时就成了Series的名称:

1

s = Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'], name='my_series')

2

print s

3

print s.name

a   -1.898245b    0.172835c    0.779262d    0.289468e   -0.947995Name: my_series, dtype: float64

my_series

优矿 python_【优矿uqer.io】量化分析师的Python日记【第5天:数据处理的瑞士军刀pandas】...相关推荐

  1. 量化分析师的Python日记 系列

    量化分析师的Python日记 系列 转发,原作者 薛昆Kelvin 为方便学习,整理一下学习材料.持续更新. [第1天:谁来给我讲讲Python?] https://uqer.io/community ...

  2. 量化分析师的Python日记-CSDN公开课-专题视频课程

    量化分析师的Python日记-7882人已学习 课程介绍         以完全初学者的角度入手来认识Python这个在量化领域日益重要的语言. 课程收益     课程先从介绍Python本身一些基本 ...

  3. 量化分析师的Python日记【Q Quant兵器谱之偏微分方程2】

    这是量化分析师的偏微分方程系列的第二篇,在这一篇中我们将解决上一篇显式格式留下的稳定性问题.本篇将引入隐式差分算法,读者可以学到: 隐式差分格式描述 三对角矩阵求解 如何使用scipy加速算法实现 在 ...

  4. 量化分析师的Python日记【第2天:再接着介绍一下Python呗】

    ###"谁来给我讲讲Python?" 上篇(链接附在文末)学习了Python的基本操作,以及几种主要的容器类型,今天学习python的函数.循环和条件.类,这样才算对Python有 ...

  5. 量化分析师的Python日记【Q Quant兵器谱之二叉树】

    通过之前几天的学习,Q Quant们应该已经熟悉了Python的基本语法,也了解了Python中常用数值库的算法.到这里为止,小Q们也许早就对之前简单的例子不满意,希望能在Python里面玩票大的!O ...

  6. 量化分析师的Python日记【第3天:一大波金融Library来袭之numpy篇】

    接下来要给大家介绍的系列中包含了Python在量化金融中运用最广泛的几个Library: numpy scipy pandas matplotlib 会给初学者一一介绍 NumPy 简介 一.NumP ...

  7. python量化分析系列(第一篇)_量化分析师的 Python 日记 [第 1 天:谁来给我讲讲 Python?]...

    45 条回复 • 2016-05-25 11:10:23 +08:00 1 2015-04-08 21:42:42 +08:00 这里竟然有Quant 2 2015-04-08 22:49:51 +0 ...

  8. 量化分析师的Python日记【第4天:一大波金融Library来袭之scipy篇】

    ####一.SciPy概述 前篇已经大致介绍了NumPy,接下来让我们看看SciPy能做些什么.NumPy替我们搞定了向量和矩阵的相关操作,基本上算是一个高级的科学计算器.SciPy基于NumPy提供 ...

  9. 量化分析师的python日记_量化分析师的Python日记【第1天:谁来给我讲讲Python?】...

    "谁来给我讲讲Python?" 作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊.C啊.继承啊.异常啊通通不懂怎么办,于是 ...

  10. 量化分析师的Python日记【第1天:谁来给我讲讲Python?】

    作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊.C啊.继承啊.异常啊通通不懂怎么办,于是我找了很多资料,写成下面这篇日记,希望以完全初学者的 ...

最新文章

  1. 德州职业技术学院计算机系,德州职业技术学院计算机系元旦晚会相声视频
  2. Error Handling in ASP.NET Core
  3. git 命令 clone分支的代码
  4. 某一年某一年_过去一年里有关开放式组织的5个最受欢迎的故事
  5. PHP编写增功能思路,php ztree如何实现增 删 改
  6. vmware虚拟机磁盘挂载
  7. 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案
  8. Windows 2008 限制IP连接方法
  9. 在Python中从头开始模拟退火
  10. Web API 方法的返回类型、格式器、过滤器
  11. POI导出Excel换行
  12. 管理Linux软件包和进程
  13. matlab基于瑞利信道,基于matlab的瑞利信道仿真.docx
  14. Python实现离线字典+听写单词(一):获取离线字典
  15. 网闸可以设置端口映射吗_路由器的外部端口和内部端口映射如何设置?
  16. 汇编语言必看书籍推荐
  17. 1548 A Simple Problem with Integers
  18. 基于JAVA响应式交友网站计算机毕业设计源码+数据库+lw文档+系统+部署
  19. 【Unity Shader】学习顶点/片元着色器
  20. 如何学习C4D?非常详细的C4D学习攻略!按照这个步骤你一定成为影视后期大神

热门文章

  1. 建议114:MD5不再安全
  2. c语言中位运算符及用法
  3. TINA仿真系列之555定时器
  4. 基于STM32的多普勒雷达测速
  5. 微信hook,易语言微信助手功能简单介绍
  6. oracle用par文件导出dmp文件及导入dmp文件
  7. 需要管理员权限解决办法
  8. Python实现CRAPS赌博游戏
  9. 企业研发人员配备比例_……企业职工人数、学历结构以及研发人员占企业职工比例说明...
  10. ipad能不能编写python_【已解决】用ipad编写python代码