python数据分析——datetime数据类型2

参考资料:活用pandas库

# 导入pandas库
import pandas as pd
# 加载数据集
tesla=pd.read_csv(r"...\data\tesla_stock_yahoo.csv")
# 查看数据
print(tesla.head())

1、基于日期取数据子集

# 将Date数据列转换为datetime类型
tesla['Date']=pd.to_datetime(tesla['Date'])
# 查看2010年6月的数据
tesla[(tesla.Date.dt.year==2010) & (tesla.Date.dt.month==6)]

(1)DatetimeIndex对象

        在处理包含datetime的数据时,经常需要datetime对象设置成DataFrame的索引。把索引设置为日期对象之后,就可以直接使用日期来获取某些数据行了,如根据年份来获取部分数据,也可以根据年份和月份来获取数据。

# 将Date设置为索引
tesla.index=tesla['Date']
# 展示索引
print(tesla.index)# 获取2015年的数据
print(tesla['2015'].iloc[:5,:5])# 获取2015年6月的数据
print(tesla['2015-06'].iloc[:5,:5])

(2)TimedeltaIndex对象

# 创建一个timedelta
tesla['ref_date']=tesla['Date']-tesla['Date'].min()
# 将此timedelta设置为索引
tesla.index=tesla['ref_date']
# 数据展示
print(tesla.iloc[:5,:5])# 筛选数据
print(tesla.loc['0 day':'5 day'].iloc[:5,:5])

2、日期范围

        并非每个数据集的值都有固定的频率,可以通过date_range函数来创建一个日期范围来为数据集重建索引。

# 读取数据集
ebola=pd.read_csv(r"...\data\country_timeseries.csv",parse_dates=[0])
# 展示数据
print(ebola.iloc[:5,:5])# 指定日期范围
head_range=pd.date_range(start='2014-12-31',end='2015-01-05')
print(head_range)
ebola5=ebola.head()
ebola5.index=ebola5['Date']
ebola5.reindex(head_range)
print(ebola5.iloc[:,:5])

(1)频率

        pandas的date_range函数有一个参数freq,其默认值为D(代表day),表示日期范围内的值是逐日递增的。

别名说明别名说明
B工作日QS季度初
C自定义工作日BQS季度初工作日
D日历日A年末
W每周BA年末工作日
M月末AS年初
SM

月中和月末

(每月第15天和月末)

BAS年初工作日
BM月末工作日BH工作时间
CBM自定义月末工作日H小时
MS月初T分钟
SMS

月初和月中

(每月第1天和第15天)

S
BMS月初工作日L毫秒
CBMS自定义月初工作日U微秒
Q季度末N纳秒
BQ季度末工作日
# 输出2017年1月1日至7日所有的工作日
print(pd.date_range('2017-01-01','2017-01-07',freq='B'))

(2)偏移量

        偏移量是在基本频率基础上做的一点调整。如下:

# 从2017年1月1日这周每隔一天取一个工作日
print(pd.date_range('2017-01-01','2017-01-07',freq='2B'))# 2017年每个月的第一个星期四
print(pd.date_range("2017-01-01","2017-12-31",freq="WOM-1THU"))# 2017年每个月的第三个星期五
print(pd.date_range("2017-01-01","2017-12-31",freq="WOM-3FRI"))

3、重采样

        重采样会把datetime从一个频率转换为另一个频率。重采样有如下3类。

        (1)下采样:从高频率到低频率(比如从每天到每月)

        (2)上采样:从低频率到高频率(比如从每月到每天)

        (3)原样采样:采样频率不变(比如从每月的第一个星期四到每月的最后一个星期五)

# 下采样:从每天到每月
# 这里有多个值,需要把结果聚合起来
# 这里用mean函数
ebola.index=ebola.Date
down=ebola.resample('M')
print(type(down))
print(down.mean().iloc[:5,:5])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/21138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记——网络参考模型——TCP/IP模型(传输层)

四、TCP/IP模型-传输层 一、TCP 1、TCP定义 TCP(Transmission Control Protocol,传输控制协议)∶为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。 连接:正式发送数据之前,提前建立好一种虚拟的&…

oracle服务器存储过程中调用http

在Oracle服务器中,存储过程调用HTTP请求可以通过几种不同的方法来实现。以下是一些关键步骤和注意事项,以帮助你清晰地理解和执行此操作: 开启Oracle ACL权限: 使用dbms_network_acl_admin包来创建和管理访问控制列表&#xff0…

ES6-03-模版字符串、对象的简化写法

一、模版字符串 1-1、声明 反引号。 1-2、特性 1、字符串内容可以直接换行 得用号连接 2、变量拼接 现在: 二、对象的简化写法 ES6允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。 let name milk;let chage function(){con…

iOS ActivityViewController使用

UIActivityViewController是iOS中用于展示一个活动列表的视图控制器,允许用户通过各种内置或第三方的应用来分享内容。以下是使用UIActivityViewController分享文本内容的示例代码: import UIKit class ViewController: UIViewController { IBA…

java-对象内存

在Java中,对象内存是指用于存储对象实例的内存区域。当我们在Java程序中创建一个对象时,Java虚拟机(JVM)会在内存中为该对象分配一块内存区域,用于存储对象的字段(成员变量)、方法和其他与对象相…

通过电脑查看Wi-Fi密码的方法,提供三种方式

式一: 右击桌面右下角的网络图标,依次选择【网络和Internet设置】、【WLAN】、【网络和共享中心】。点击已连接的无线网络。依次点击【无线属性】、【安全】,勾选下方【显示字符】即可。 方式二: 在开始菜单输入“cmd”进入命令…

脚本实现登陆滑块

脚本实现登陆滑块 仅供学习参考,简单操作 你知道吗,滑动验证码居然是为了验证人类比机器人蠢而设计的。 你以为自己快速、准确地滑动拼图、对齐图案,才被允许通过,系统还说你超越了99%的用户,夸你“比闪电还快”&am…

【Python】collections模块:高效处理数据的利器

Python中的collections模块:高效处理数据的利器 Python的collections模块是一个内置模块,它提供了一些专用的容器数据类型,作为Python通用内置容器(如列表list、字典dict、集合set和元组tuple)的替代品。本文将深入探…

STM32_SPI

1、SPI简介 1.1 什么是SPI SPI,即Serial Peripheral Interface,串行外设接口。SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,…

网络安全法中的网络安全规定和措施

《中华人民共和国网络安全法》是中国首部全面规范网络空间安全管理的基础性法律,旨在加强网络安全,保障国家安全和社会公共利益,保护公民、法人和其他组织的合法权益,促进互联网的健康发展。以下是该法律中关于网络安全的一些核心…

Linux线程--线程创建、等待及退出

1. pthread_create 功能 创建一个新的线程。 原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);参数 thread: 指向pthread_t类型变量的指针,用于存储新创建线程的标识符。attr: 线程属性&…

采用bat结合zabbix监控sqlserver数据库表的信息

采用bat结合zabbix监控sqlserver数据库表的信息,当表插入某个特定的值的时候就发出告警。 监控需求:数据库存在某个表,该表不是一个固定的表名字,而且根据当前的日期生成表,比如tab20240501,tab20240502,需要查询当天…

安卓init进程详解

目录 一、概述1.1 Init进程如何被启动?1.2 Init进程启动后,做了哪些事? 二、kernel启动init进程2.1 kernel_init2.2 do_basic_setup 三、Init 进程启动源码分析3.1 Init 进程入口3.2 ueventd_main3.3 init 进程启动第一阶段3.4 加载SELinux规…

FLINK-窗口算子

参考资料 官方文档- WindowFlink中的时间和窗口之窗口 窗口 在流处理中,我们往往需要面对的是连续不断、无休无止的无界流,不可能等到所有所有数据都到齐了才开始处理。所以聚合计算其实只能针对当前已有的数据——之后再有数据到来,就需要继…

chat4-Server端保存聊天消息到mysql

本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端 同时将聊天消息保存到mysql 服务端为当前客户端创建一个线程,此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端同时将聊天消息保存到mysql 本文档主要总结了将聊天…

多项目的.net core解决方案(项目间引用)如何使用Docker部署

解决方案内部项目之间引用很正常,但我docker不是很熟,对一些基础命令含义还理解不深入,部署引用其他项目的项目总不成功。搜到了一篇非常适合初学者,从dockerfile命令讲解,到解决引用其他项目时如何docker部署的文章。…

JavaWeb_SpringBootWeb基础

先通过一个小练习简单了解以下SpringBootWeb。 小练习: 需求:使用SpringBoot开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 步骤: 1.创建SpringBoot项目,勾选We…

3-EMMC命令使用

在调试emmc的过程,我们需要用到命令读写emmc,烧录,查看emmc寄存器,设置寄存器等功能,所以uboot和linux下都有各自的命令可以使用。 1、 uboot下mmc命令 1.1、mmc信息 查看mmc信息:mmc info 描述了emmc的速…

epoll模型下的简易版code

epoll模型下的简易版code c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/epoll.h> #include <fcntl.h>#define MAX_EVENTS 10 #define NUM_DESCRIPTORS 5 // 模拟多个文件描述符// …

【代码随想录训练营】【Day 38】【贪心-5】| Leetcode 435, 763, 56

【代码随想录训练营】【Day 38】【贪心-5】| Leetcode 435, 763, 56 需强化知识点 重叠区间系列 题&#xff0c; 763&#xff0c; 435 题目 435. 无重叠区间 左起点排序&#xff0c;记录重叠区间个数&#xff0c;总数相减即为结果&#xff0c;过程中维护右边界注意&#x…