pandas_时间序列和常用操作

Posted hany-postq473111315

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas_时间序列和常用操作相关的知识,希望对你有一定的参考价值。

# 时间序列和常用操作
import pandas as pd

# 每隔五天--5D
pd.date_range(start = 20200101,end = 20200131,freq = 5D)
‘‘‘
DatetimeIndex([‘2020-01-01‘, ‘2020-01-06‘, ‘2020-01-11‘, ‘2020-01-16‘,
               ‘2020-01-21‘, ‘2020-01-26‘, ‘2020-01-31‘],
              dtype=‘datetime64[ns]‘, freq=‘5D‘)
‘‘‘
# 每隔一周--W
pd.date_range(start = 20200301,end = 20200331,freq = W)
‘‘‘
DatetimeIndex([‘2020-03-01‘, ‘2020-03-08‘, ‘2020-03-15‘, ‘2020-03-22‘,
               ‘2020-03-29‘],
              dtype=‘datetime64[ns]‘, freq=‘W-SUN‘)
‘‘‘
# 间隔两天,五个数据
pd.date_range(start = 20200301,periods = 5,freq = 2D)
# periods 几个数据 ,freq 间隔时期,两天
‘‘‘
DatetimeIndex([‘2020-03-01‘, ‘2020-03-03‘, ‘2020-03-05‘, ‘2020-03-07‘,
               ‘2020-03-09‘],
              dtype=‘datetime64[ns]‘, freq=‘2D‘)
‘‘‘
# 间隔三小时,八个数据
pd.date_range(start = 20200301,periods = 8,freq = 3H)
‘‘‘
DatetimeIndex([‘2020-03-01 00:00:00‘, ‘2020-03-01 03:00:00‘,
               ‘2020-03-01 06:00:00‘, ‘2020-03-01 09:00:00‘,
               ‘2020-03-01 12:00:00‘, ‘2020-03-01 15:00:00‘,
               ‘2020-03-01 18:00:00‘, ‘2020-03-01 21:00:00‘],
              dtype=‘datetime64[ns]‘, freq=‘3H‘)
‘‘‘
# 三点开始,十二个数据,间隔一分钟
pd.date_range(start = 202003010300,periods = 12,freq = T)
‘‘‘
DatetimeIndex([‘2020-03-01 03:00:00‘, ‘2020-03-01 03:01:00‘,
               ‘2020-03-01 03:02:00‘, ‘2020-03-01 03:03:00‘,
               ‘2020-03-01 03:04:00‘, ‘2020-03-01 03:05:00‘,
               ‘2020-03-01 03:06:00‘, ‘2020-03-01 03:07:00‘,
               ‘2020-03-01 03:08:00‘, ‘2020-03-01 03:09:00‘,
               ‘2020-03-01 03:10:00‘, ‘2020-03-01 03:11:00‘],
              dtype=‘datetime64[ns]‘, freq=‘T‘)
‘‘‘
# 每个月的最后一天
pd.date_range(start = 20190101,end = 20191231,freq = M)
‘‘‘
DatetimeIndex([‘2019-01-31‘, ‘2019-02-28‘, ‘2019-03-31‘, ‘2019-04-30‘,
               ‘2019-05-31‘, ‘2019-06-30‘, ‘2019-07-31‘, ‘2019-08-31‘,
               ‘2019-09-30‘, ‘2019-10-31‘, ‘2019-11-30‘, ‘2019-12-31‘],
              dtype=‘datetime64[ns]‘, freq=‘M‘)
‘‘‘
# 间隔一年,六个数据,年末最后一天
pd.date_range(start = 20190101,periods = 6,freq = A)
‘‘‘
DatetimeIndex([‘2019-12-31‘, ‘2020-12-31‘, ‘2021-12-31‘, ‘2022-12-31‘,
               ‘2023-12-31‘, ‘2024-12-31‘],
              dtype=‘datetime64[ns]‘, freq=‘A-DEC‘)
‘‘‘
# 间隔一年,六个数据,年初最后一天
pd.date_range(start = 20200101,periods = 6,freq = AS)
‘‘‘
DatetimeIndex([‘2020-01-01‘, ‘2021-01-01‘, ‘2022-01-01‘, ‘2023-01-01‘,
               ‘2024-01-01‘, ‘2025-01-01‘],
              dtype=‘datetime64[ns]‘, freq=‘AS-JAN‘)
‘‘‘
# 使用 Series 对象包含时间序列对象,使用特定索引
data = pd.Series(index = pd.date_range(start = 20200321,periods = 24,freq = H),data = range(24))
‘‘‘
2020-03-21 00:00:00     0
2020-03-21 01:00:00     1
2020-03-21 02:00:00     2
2020-03-21 03:00:00     3
2020-03-21 04:00:00     4
2020-03-21 05:00:00     5
2020-03-21 06:00:00     6
2020-03-21 07:00:00     7
2020-03-21 08:00:00     8
2020-03-21 09:00:00     9
2020-03-21 10:00:00    10
2020-03-21 11:00:00    11
2020-03-21 12:00:00    12
2020-03-21 13:00:00    13
2020-03-21 14:00:00    14
2020-03-21 15:00:00    15
2020-03-21 16:00:00    16
2020-03-21 17:00:00    17
2020-03-21 18:00:00    18
2020-03-21 19:00:00    19
2020-03-21 20:00:00    20
2020-03-21 21:00:00    21
2020-03-21 22:00:00    22
2020-03-21 23:00:00    23
Freq: H, dtype: int64
‘‘‘
# 查看前五个数据
data[:5]
‘‘‘
2020-03-21 00:00:00    0
2020-03-21 01:00:00    1
2020-03-21 02:00:00    2
2020-03-21 03:00:00    3
2020-03-21 04:00:00    4
Freq: H, dtype: int64
‘‘‘
# 三分钟重采样,计算均值
data.resample(3H).mean()
‘‘‘
2020-03-21 00:00:00     1
2020-03-21 03:00:00     4
2020-03-21 06:00:00     7
2020-03-21 09:00:00    10
2020-03-21 12:00:00    13
2020-03-21 15:00:00    16
2020-03-21 18:00:00    19
2020-03-21 21:00:00    22
Freq: 3H, dtype: int64
‘‘‘
# 五分钟重采样,求和
data.resample(5H).sum()
‘‘‘
2020-03-21 00:00:00    10
2020-03-21 05:00:00    35
2020-03-21 10:00:00    60
2020-03-21 15:00:00    85
2020-03-21 20:00:00    86
Freq: 5H, dtype: int64
‘‘‘
# 计算OHLC open,high,low,close
data.resample(5H).ohlc()
‘‘‘
                     open  high  low  close
2020-03-21 00:00:00     0     4    0      4
2020-03-21 05:00:00     5     9    5      9
2020-03-21 10:00:00    10    14   10     14
2020-03-21 15:00:00    15    19   15     19
2020-03-21 20:00:00    20    23   20     23
‘‘‘
# 将日期替换为第二天
data.index = data.index + pd.Timedelta(1D)
# 查看前五条数据
data[:5]
‘‘‘
2020-03-22 00:00:00    0
2020-03-22 01:00:00    1
2020-03-22 02:00:00    2
2020-03-22 03:00:00    3
2020-03-22 04:00:00    4
Freq: H, dtype: int64
‘‘‘
# 查看指定日期是星期几
# pd.Timestamp(‘20200321‘).weekday_name
# ‘Saturday‘

# 查看指定日期的年份是否是闰年
pd.Timestamp(20200301).is_leap_year
# True

# 查看指定日期所在的季度和月份
day = pd.Timestamp(20200321)
# Timestamp(‘2020-03-21 00:00:00‘)

# 查看日期的季度
day.quarter
# 1

# 查看日期所在的月份
day.month
# 3

# 转换为 python 的日期时间对象
day.to_pydatetime()
# datetime.datetime(2020, 3, 21, 0, 0)

2020-05-07

以上是关于pandas_时间序列和常用操作的主要内容,如果未能解决你的问题,请参考以下文章

pandas_一维数组与常用操作

pandas_一维数组与常用操作

Python pandas.read_sql_query()常用操作方法代码

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]