Pandas与数据处理之Series

Pandas是python的第三方库,Pandas是建立在Numpy的基础上,其最大特色在于提供灵活的数据结构来处理关联数据和有标签的数据。

Pandas提供了两大类型的数据结构:一维结构Series类型数据和二维结构的DataFrame数据。这两大数据结构都有数据标签这一独特性。数据标签能够将不同的数据按照相同的数据标签进行汇总。Pandas广泛应用于金融,统计以及社会科学领域的数据处理。本文总结了Series的基本功能。

Series数据类型

Series类型的数据由一列数据及其对应的标签组成。Series对象本质上是一个Numpy数组,每个Series对象实际上都有两个数组组成,具有index和value两大属性。

  • Index:保存标签信息,是从Numpy数组继承的Index对象;
  • Values:保存值,是一维Numpy数组。

创建

空Series:pandas.Series();

同时制定数组和索引:pandas.Series([1,2,3,4], index = ['a', 'b', 'c', 'd'])

KV模式初始化:pandas.Series({'a':1, 'b':2, 'c':3}

只指定value:pandas.Series([1,3,5,4]}

通过randn生成数组:pandas.Series(numpy.random.randn(5))

通过arange生成数组:pandas.Series(numpy.arange(0,6))

提取与切片

series = pandas.Series(numpy.arrange(0, 6), index = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’])

取前n个:series.head(5)

取后n个:series.tail(5)

取指定下标:series.take([3, 5, 7])

通过offset取:series[2], series[[1,3 ,5]]

通过标签取:series['a'], series['a', 'b', 'c']

范围切片:series[0:4]

标签范围切片:series['a':'d']

时间序列

创建时需要把index设置为Timestamp,如:

from datetime import datetime

import pandas as pd

date = datetime(2016, 1, 1)

date = pd.Timestamp(date)

ts = pd.Series([1], date)

dates = ['2015-01-01', '2016-01-01', '2016-03-01']

ts = pd.Series([1, 2], index = pd.to_datetime(dates))

多种时间格式支持:ts['20150101'], ts['2016-10-01'], ts['01/01/2016']

年份切片:ts['2016']

滞后操作:ts.shift(1), 正数表示滞后; ts.shift(-1),负数表示超前

收益率计算:(price.shift - price.shift(1))/ price.shift(1)

高低频时间数据转换:rts = ts.resample('M', how = 'first') #'M'指的是每月最后一天,how指定了转换方法可以是first,mean等

rts = ts.resample('MS', how  = 'first') #'MS'只每月第一天。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值