全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
8113 3
2015-10-14
来源: uqer.io 原文链接 https://uqer.io/community/share/54ffd96ef9f06c276f651aac


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



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-15 18:17:28
QQ截图20151015150346.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-16 11:19:59
dana.quant 发表于 2015-10-15 18:17
未来太遥远,把握现在最重要~
优矿五百万实盘量化大赛第二期正在进行中
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-16 13:04:34
未来太遥远,把握现在最重要~
优矿五百万实盘量化大赛第二期正在进行中
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群