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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值