python pandas 时间序列数据
python pandas 时间序列数据
文章目录
ʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞʚʕ̯•͡˔•̯᷅ʔɞ
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ
import pandas as pd
1. to_datetime() “字符串序列”转时间序列
使用to_datetime()方法可以将 字符串序列的数据转化为 时间序列的索引,即 将数据转化为时间序列数据。
dates1 = pd.to_datetime(['1/6/2022', '3/6/2022', '2/6/2022'])
print(dates1)
__
2. 使用datetime对象序列 得到时间序列数据
以datetime对象组成的序列作为Series或DataFrame的索引,则直接就是时间序列数据了,不再需要其他额外方法。
dates3 = [datetime(2022, 6, 1), datetime(2022, 6, 3), datetime(2022, 6, 4), datetime(2022, 6, 2), datetime(2022, 6, 5)]
s1 = pd.Series([2, 3, 5, 7, 9], index=dates3)
print(s1)
print("=============================================================")
print(s1.index)
3. pd.date_range() 创建时间序列数据
3.1 创建方法① 指定periods
date_range1 = pd.date_range('1/1/2022', periods=1000)
s2 = pd.Series(np.random.randn(1000), index=date_range1)
print(s2)
3.2 创建方法② 指定首位
date_range2 = pd.date_range('2022-2-1', '2022-3-1')
s2 = pd.Series(np.random.randn(len(date_range2)), index=date_range2)
print(s2)
3.3 创建方法③ 指定频率 freq
常用的freq有:
参数 | 描述 |
---|---|
Y | 年 |
M | 月 |
W | 周 |
D | 天 |
B | 工作日 |
H | 小时 |
T | 分钟 |
s | 秒 |
示例如下:
date_range3 = pd.date_range('2022-06-01','2023-06-30',freq='3s')
s2 = pd.Series(np.random.randn(len(date_range3)), index=date_range3)
print(s2)
4.时间的 索引
4.1 索引 取个别数据
dates = [datetime(2022, 6, 1), datetime(2022, 6, 3), datetime(2022, 6, 4), datetime(2022, 6, 2), datetime(2022, 6, 5)]
s1 = pd.Series([2, 3, 5, 7, 9], index=dates)
print(s1['2022 06 02'])
print(s1['2022-06-02'])
print(s1['2022/06/02'])
print(s1['2022.06.02'])
print(s1['2022, 06, 02'])
print("===========================")
# 此种写法取出来的不是一条数据,而是一个值。
print(s1[datetime(2022, 6, 2)])
4.2 索引年份
年份索引示例
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
print(s2['2022'])
4.3 索引年月
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
print(s2['2022-03'])
6. 切片
6.1 支持[start:end:step]
切片
print(s1[::2])
6.2 切片(包含末端数据)
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
print(s2['2022-03-19':'2022-04-02'])
6.3 通过切片修改数据
可以借助切片达到修改部分数据的目的,示例如下结果略。
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
s2['2022-03-19':'2022-04-02'] = 1
6.4 truncate() 截断函数
截去某日期后的数据
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
print(s2.truncate(after='10/6/2023'))
截去某日期前的数据
s2 = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2022', periods=1000))
print(s2.truncate(before='10/6/2023'))
7. 时间序列中的空日期
7.1 空值日期的形式
dates2 = pd.to_datetime(['1/6/2022', '3/6/2022', '2/6/2022', None])
print(dates2)
如果原数据中存在空值 None,则在这里被转化为 NaT 的形式。
7.2 判断空值
判断是否为空值,isnull()方法 在时间序列索引中是可用的。
dates2 = pd.to_datetime(['1/6/2022', '3/6/2022', '2/6/2022', None])
print(pd.isnull(dates2))
7.3 去除空值日期数据
dates2 = pd.to_datetime(['1/6/2022', '3/6/2022', '2/6/2022', None])
print(dates2.dropna())
8. 时间排序
给时间排序
8.1 正序
dates3 = [datetime(2022, 6, 1), datetime(2022, 6, 3), datetime(2022, 6, 4), datetime(2022, 6, 2), datetime(2022, 6, 5)]
s1 = pd.Series([2, 3, 5, 7, 9], index=dates3)
print(s1.sort_index())
8.2 倒序
print(s1.sort_index(ascending=False))
9.日期 的 重复值
9.1 判断是否有重复值 is_unique属性
dates = pd.DatetimeIndex(['6/1/2022', '6/2/2022', '6/2/2022', '6/3/2022', '6/4/2022'])
s3 = pd.Series(['aaa', 'ccc', 'bbb', 'ddd', 'eee'], index=dates)
print(s3.index.is_unique)
打印出s3的is_unique属性,值为Fasle,表明存在重复值。
9.2 聚合
存在大量重复索引时,也许适合做聚合。
以聚合计数为例。
print(s3.groupby(level=0).count())
10. 前滞 与 后滞 shift()
10.1 后滞
s4 = pd.Series(np.random.randn(4),index=pd.date_range('1/1/2022',periods=4,freq='M'))
print(s4.shift(2))
10.2 前滞
s4 = pd.Series(np.random.randn(4),index=pd.date_range('1/1/2022',periods=4,freq='M'))
print(s4.shift(-2))
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ
相关文章
- Python Django +Celery +flower
- 【Python】python 多线程两种实现方式
- Python 爬取淘宝商品数据挖掘分析实战
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- Python 日期和时间_python 当前日期时间_python日期格式化
- 【Python】python对象与json相互转换
- Python “今日新闻”一个小程序,拿走就能用!
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python之Pandas:pandas.read_csv()函数的简介、具体案例、使用方法详细攻略
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
- Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略
- Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略
- 【负荷预测】年月日及时间序列负荷预测(Python代码实现)
- Python实现GWO智能灰狼优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战
- 理解 Python 装饰器看这一篇就够了
- 【LeetCode Python实现】 5473. 灯泡开关 IV(中等)
- Python编程:python-attrs模块的简单使用
- python 同时迭代多个序列
- Python标准库:内置函数range(stop) range(start, stop[, step])
- Python定时任务-schedule vs. Celery vs. APScheduler
- 【计算机二级Python】模拟试卷第4套选择题
- Python kafka操作实例(kafka-python)
- Python: 爬虫入门-python爬虫入门教程(非常详细)
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python 爬虫