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

参考资料:活用pandas库

1、python的datetime对象

# 导入datetime对象
from datetime import datetime# 获取当前日期和时间
now=datetime.now()
print(now)# 手动创建datetime
t1=datetime.now()
t2=datetime(1970,1,1)
# 对datetime做数学运算
diff=t1-t2
print(diff)
# 查看运算结果的数据类型
print(type(diff))

2、转换为datetime

        可以使用to_datetime函数把一个对象转换为datetime类型。

# 导入pandas库
import pandas as pd
# 读取数据集
ebola=pd.read_csv(r"...\data\country_timeseries.csv")
# 获取左上角数据
print(ebola.iloc[:5,:5])
# Date列包含日期信息,但info方法的结果显示仅为普通字符串类型
print(ebola.info())
# 使用pd.to_datetime擦混关键datetime类型数据列
# 方法1
ebola['dt']=pd.to_datetime(ebola['Date'])
# 方法2
ebola['dt2']=pd.to_datetime(ebola['Date'],format="%m/%d/%Y")
print(ebola.info())

        对于文本的日期格式,可以使用python的strptime语法手动指定表示方法。常见表示方法如下:

符号含义示例
%a星期的英文缩写Sun, Mon,...,Sat
%A星期的英文全称Sunday, Monday, ..., Saturday
%w以数字表示星期,0为周日0,1,2,3,4,5,6
%d一个月的每一天(两个数字)01,02,...,31
%b月份的英文缩写Jan, Feb, ..., Dec
%B月份的英文全称January, Februray,..., December
%m月份(两位数字)01, 02, ..., 12
%y年份(两位数字)00, 01,..., 99
%Y年份(四位数字)2023, 2024, ..., 9999
%H小时(两位数,24小时制)00, 01, ..., 23
%I小时(两位数,12小时制)01, 02, ..., 12
%pAM或PMAM, PM
%M分钟(两位数)00, 01, ..., 59
%S秒(两位数)00, 01, ..., 59
%f微秒000000,000001, ..., 999999

3、加载包含日期的数据

        pd.read_csv函数有很多参数,如parse_dates、inher_datetime_format、keep_date_col、date_parser和dayfirst,可以处理日期数据。在使用read_csv加载数据集时,可以直接在parse_dates参数中指定想要解析为日期的列。

ebola=pd.read_csv(r"...\data\country_timeseries.csv",parse_dates=[0])
print(ebola.info())

4、提取日期的各个部分

# 将字符串转换为timestamp对象
d=pd.to_datetime('2024-5-27')
# 显示数据类型
print(type(d))
# 年
print(d.year)
# 月
print(d.month)
# 日
print(d.day)

# 对datetime类型数据进行整列操作
ebola['year']=ebola['Date'].dt.year
ebola['month']=ebola['Date'].dt.month
ebola['day']=ebola['Date'].dt.day
print(ebola[['Date','year','month','day']].head())
print(ebola[['Date','year','month','day']].info())

5、日期运算和Timedelta

# 对datetime数据进行减法运算,会得到一个timedelta对象
ebola['outbreak_d']=ebola['Date']-ebola['Date'].min()
print(ebola[['Date','Day','outbreak_d']].head())
print(ebola[['Date','Day','outbreak_d']].tail())
print(ebola[['Date','Day','outbreak_d']].info())

6、datetime方法

# 导入数据集
banks=pd.read_csv(r"...\data\banklist.csv",parse_dates=[5,6])
# 查看数据列信息
print(banks.info())
# 添加两列信息,分别表示银行破产的季度和年份
banks['closing_quarter']=banks['Closing Date'].dt.quarter
banks['closing_year']=banks['Closing Date'].dt.year
# 计算每年破产的银行数量
closing_year=banks.groupby(['closing_year'])['Bank Name'].count()
# 也可以计算每年每季度破产的银行数量
closing_year_q=banks.groupby(['closing_year','closing_quarter'])['Bank Name'].count()
# 绘制图形
import matplotlib.pyplot as plt
closing_year_q.plot()

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

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

相关文章

儿童节快乐!探索图形化编程桌面的“童年”成长之路

在这个充满童真与快乐的儿童节,我要向在CSDN平台上努力拼搏的每一位朋友,送上我最热切、最深情的祝福!愿你们心中那份孩童般的纯真与对世界无尽的好奇永不褪色,愿你们的人生道路如同这个美好的节日,流光溢彩、欢乐永恒…

lynis安全漏洞扫描工具

Lynis是一款Unix系统的安全审计以及加固工具,能够进行深层次的安全扫描,其目的是检测潜在的时间并对未来的系统加固提供建议。这款软件会扫描一般系统信息,脆弱软件包以及潜在的错误配置。 安装 方式1 git下载使用git clone https://github…

华为校招机试 - 字符串解析(20240515)

题目描述 已知存在某种字符串解析语法,其中的语法元素如下 N:用于匹配单个数字(0-9)A:用于匹配单个字母(a-z,A-Z)n():用于表示一个分组,分组中至少有一个N语法元素或者A语法元素,n为个数值,表示匹配 n 次,1 ≤ n ≤ 200 输入给定的解析语法和目标字符串,要求从中…

docker compose完成简单项目部署

1. 项目环境 centos7 docker mysql redis ruoyi项目 ruoyi项目链接:https://gitee.com/y_project/RuoYi-Vue.git 2. 进行项目前后端代码打包 后端打包: 修改mysql连接的相关配置文件 RuoYi-Vue/ruoyi-admin/src/main/resources/application-dru…

浙江零排参加全国水科技大会暨技术装备成果展览会(成都)并作主论坛演讲

2024年5月13日-15日中华环保联合会、福州大学、上海大学等联合举办的2024年全国水科技大会暨技术装备成果展览会在成都顺利举办。浙江零排城乡规划发展有限公司司受邀参加,首日有幸听取徐祖信院士、任洪强院士、汪华林院士等嘉宾的主旨报告。主旨报告后,…

Java过滤特殊空格nbsp;

现象: 用Java处理excel文件中的以下字符串时,想去除此空格,却发现用String.trim()没有直到预期效果: 原因: 在网上找了下,应该是这其实是html中经常使用的一种特殊空格字符  处理&a…

第八十九周周报

学习目标: 论文 学习时间: 2024.05.25-2024.05.31 学习产出: 一、论文 SAN: INDUCING METRIZABILITY OF GAN WITH DISCRIMINATIVE NORMALIZED LINEAR LAYER 将GAN与切片最优输运联系起来,提出满足方向最优性、可分离性和单射…

Redis基础操作命令

Redis基础操作命令非常丰富,涵盖了多个方面,包括全局操作、字符串操作、哈希操作、列表操作、集合操作以及有序集合操作等。以下是Redis基础操作命令的归纳和详细解释: 1. 全局操作 ping:检查Redis服务是否运行正常,…

DBeaver连接Elasticsearch

一、下载DBeaver 二、连接: 1、一定要选择开源的 Open Distro Elasticsearch 2、填写地址: 3、选择“URL”,将https改为http 否则会报SSL错误 4、测试连接

JavaScript笔记三-JavaScript常用对象

1、数字对象(Number) 1.1 、属性 属性描述Number.MAX_VALUEJavaScript 中所能表示的最大值Number.MIN_VALUEJavaScript 中所能表示的最小值Number.NaN非数字Number.NEGATIVE_INFINITY负无穷,在溢出时返回Number.POSITIVE_INFINITY正无穷&am…

C语言 | Leetcode C语言题解之第123题买卖股票的最佳时机III

题目&#xff1a; 题解&#xff1a; #define max(a, b) ((a) < (b) ? (b) : (a))int maxProfit(int* prices, int pricesSize) {int buy1 -prices[0], sell1 0;int buy2 -prices[0], sell2 0;for (int i 1; i < pricesSize; i) {buy1 max(buy1, -prices[i]);sell…

与牢霍沟通——Linux操作系统原理

硬件层 计算机由何组成&#xff1f; 我们现在手中的计算机&#xff0c;无论配置如何&#xff0c;是笔记本还是台式&#xff0c;都由三部分构成&#xff1a; 输入设备&#xff1a;键盘&#xff0c;鼠标...中央处理器&#xff1a;cpu&#xff0c;显卡&#xff0c;磁盘...输出设…

com.alibaba.fastjson.TypeReference JSON 泛型类型(详解)

系列文章目录 文章目录 系列文章目录一、简介二、构造方法 一、简介 com.alibaba.fastjson.TypeReference 即类型引用&#xff0c;用于指定我们使用 com.alibaba.fastjson 进行 json 转换时的对象类型。 官方解释&#xff1a; 表示泛型的类型。Java 还没有提供表示泛型类型的…

Vue 框选区域放大(纯JavaScript实现)

需求&#xff1a;长按鼠标左键框选区域&#xff0c;松开后放大该区域&#xff0c;继续框选继续放大&#xff0c;反向框选恢复原始状态 实现思路&#xff1a;根据鼠标的落点&#xff0c;放大要显示的内容&#xff08;内层盒子&#xff09;&#xff0c;然后利用水平偏移和垂直偏…

代码随想录算法训练营第三十三天| LeetCode1005.K次取反后最大化的数组和、LeetCode134. 加油站、LeetCode135. 分发糖果

#LeetCode 1005. Maximise Sum Of Array After K Negations #LeetCode 1005. 视频讲解&#xff1a;贪心算法&#xff0c;这不就是常识&#xff1f;还能叫贪心&#xff1f;LeetCode&#xff1a;1005.K次取反后最大化的数组和_哔哩哔哩_bilibili 这个题目中用到了两次局部最优&am…

14-alert\confirm\prompt\自定义弹窗

一、认识alert\confirm\prompt 下图依次是alert、confirm、prompt&#xff0c;先认清楚长什么样子&#xff0c;以后遇到了就知道如何操作了。 二、alert操作 先用driver.switch_to.alert方法切换到alert弹出框上&#xff1b;可以用text方法获取弹出的文本信息&#xff1b;acce…

Spring Cloud | 客户端 “负载均衡器“ : Ribbon

目录: 1. 什么是 "负载均衡" ? ( 通过 "负载均衡" 可以将 "用户请求" "分发" 到 不同的服务器&#xff0c;以此来提高 "性能" 和 "可靠性" )2. "负载均衡" 的 分类 &#xff1f;3. 认识 Ribbon :3.1 R…

【蓝桥杯国赛】动态规划

“动态规划”在蓝桥杯中的出题类型&#xff0c;主要为两种&#xff0c; 要格外注意&#xff0c;每一次 dp 的迭代更新&#xff0c;都是针对于当前位置下的“所有情况”进行的&#xff0c; 应着眼于当前位置的每一种情况。 类型一&#xff1a;一共有多少种情况&#xff1f; 1…

Flutter 中的 ScrollConfiguration 小部件:全面指南

Flutter 中的 ScrollConfiguration 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的移动、Web 和桌面应用。在 Flutter 中&#xff0c;滚动是用户界面中一个常见的交互元素。ScrollConfiguration 是…

使用 Apache Commons Exec 自动化脚本执行实现 MySQL 数据库备份

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…