Pandas杂记(2)——Pandas and Time Series

Pandas

  1. Pandas 支持时间序列的类型的数据。时间序列类型是一种Series,时间序列的index属性取值为时间戳

创建时间序列

  1. Timestamp(),传入数据类型可以是str类型,也可以是datetime类型
  2. to_datetime() 将Series的index属性转换为datetime转换为DATe time
from datetime import datetime
import pandas as pd
# 两种方法
date= datetime(2018,1,1)
date = pd.Timestamp(date)

date1 = pd.Timestamp('2018-1-1')
print(date)
print(date1)

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

2018-01-01 00:00:00
2018-01-01 00:00:00
2018-01-01 1
dtype: int64

#to_datetime() 将Series的index属性转换成DatetimeIndex
dates = ['2018-01-01','2018-01-02','2018-01-03']
ts = pd.Series([1,2,3],pd.to_datetime(dates))
ts

2018-01-01 1
2018-01-02 2
2018-01-03 3
dtype: int64

ts.index

DatetimeIndex([‘2018-01-01’, ‘2018-01-02’, ‘2018-01-03’], dtype=‘datetime64[ns]’, freq=None)

# slice data
print(ts['20180101'])
print(ts['2018'])
print(ts['2018-01'])
print(ts.truncate(after='20180102'))

1
2018-01-01 1
2018-01-02 2
2018-01-03 3
dtype: int64
2018-01-01 1
2018-01-02 2
2018-01-03 3
dtype: int64
2018-01-01 1
2018-01-02 2
dtype: int64

# shift
ts.shift(1)
print('Here is an example:')
price = pd.Series([20,19,22,25,24],
                  index = pd.to_datetime(['2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05']))
(price-price.shift(1))/price

Here is an example:
2018-01-01 NaN
2018-01-02 -0.052632
2018-01-03 0.136364
2018-01-04 0.120000
2018-01-05 -0.041667
dtype: float64

# resample()
# high frequency -->low frequency
rts = ts.resample('MS').first() #MS 每月的第一天,M每月的最后一天
rts

2018-01-01 1
Freq: MS, dtype: int64

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值