楼主: ookiddy
8211 3

[源码分享] 【优矿uqer.io】量化分析师的Python日记【第5天:数据处理的瑞士军刀pandas】 [推广有奖]

  • 0关注
  • 3粉丝

高中生

62%

还不是VIP/贵宾

-

威望
0
论坛币
847 个
通用积分
0
学术水平
9 点
热心指数
9 点
信用等级
9 点
经验
2426 点
帖子
17
精华
0
在线时间
23 小时
注册时间
2006-8-24
最后登录
2022-12-20

楼主
ookiddy 发表于 2015-10-14 16:36:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
来源: 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



二维码

扫码加我 拉你入群

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

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

关键词:pandas python panda 数据处理 瑞士军刀 实验室 瑞士军刀 分析师 日记

已有 1 人评分论坛币 收起 理由
fantuanxiaot + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

本帖被以下文库推荐

沙发
dana.quant 企业认证  发表于 2015-10-15 18:17:28
QQ截图20151015150346.png

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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-29 07:24