第四章. Pandas进阶—日期数据处理

news2024/11/24 20:14:45

第四章. Pandas进阶

4.7 日期数据处理

1.DataFrame的日期数据转换(to_datetime)

在日常工作中,常见的日期方式有很多种,例如’20221123’,‘2022.11.23’,‘2022/11/23’,‘23/11/2022’,‘23-Nov-22’,需要先将这些格式统一后才能进行后续的工作。

1).语法:

DataFrame.to_datetime(arg,errors=“ignore”,dayfirst=False,yearfirst=False,utc=None,box=True,format=None,exact=True,unit=None,inter_datetime=False,origin=“unix”,cache=False)

参数说明:
arg:需要转换的时间和日期
errors:值为ignore(无效的解析将返回原值),值为raise(无效的解析将引发异常),值为coerce(无效的解析将被置为NaT)
dayfirst:第一个为天,例如:23/11/2022,置为True:解析为 2022-11-23,置为False:解析为 2022-23-11

2).示例:

  • 示例1:日期格式转换
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1',usecols=['发货日期'])
print(df)
print('*' * 50)

df['发货日期_new']= pd.to_datetime(df['发货日期'])
print(df)

结果展示:
在这里插入图片描述

  • 示例2:将多列数据组合成日期数据
import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet3')
print(df)
print('*' * 50)

df['发货日期']= pd.to_datetime(df)
print(df)

结果展示:
在这里插入图片描述

2.访问日期属性对象(dt)

1).语法:

Series.dt()

2).示例1:获取日期中的多个属性

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1', usecols=['发货日期'])
print(df)
print('*' * 50)

df['发货日期_new']= pd.to_datetime(df['发货日期'])
print(df)

df['年'],df['季度'],df['月'],df['日'],df['是否年底']=df['发货日期_new'].dt.year,df['发货日期_new'].dt.quarter,df['发货日期_new'].dt.month,df['发货日期_new'].dt.day,df['发货日期_new'].dt.is_year_end
print(df)

结果展示:
在这里插入图片描述

3.获取日期区间的数据

示例:

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df)
print('*' * 50)

df1 = df.set_index('发货日期')
df1 = df1['2021.8.21':'2022.9.23']
print(df1)

结果展示:
在这里插入图片描述

4.统计显示不同时期的数据(resample,to_period)

1).语法:

  • 统计语法
DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0,on=None,level=None)

参数说明:
rule:字符串,偏移量表示目标字符串或对象转换:‘AS’(年),‘Q’(季度),‘M’(月),‘W’(星期),‘D’(天)
axis:0:表示列,1:表示行,默认0
fill_method:升采样时的差值方式,例如:bfill (用后值填充),ffill(用前值填充)
closed:降采样时,时间区间的开和闭,‘right’(默认)和 ‘left’ (right:左开右闭)
label:降采样时,如何设置聚合值的标签
convention:当重采样时,将低频转换成高频时,所采用的约定,‘start’,‘end’, 默认值‘‘start’’
kind:聚合到时期(‘period’)或时间戳(timestamp),默认聚合到时间序列的索引类型,默认值为None
loffset:聚合标签的时间矫正值,默认值为None,比如‘-1s’或Second(-1)用于将聚合标签调早1秒
limit:向前或向后填充时,允许填充的最大时期数,默认值为None
base:对于平均细分为1天的频率,聚合间隔的“origin”。例如,对于“ 5min”频率,基本范围可以是0-4。默认值为0。

  • 显示语法
DataFrame.to_period(freq=None,axis=0,copy=True)

参数说明:
freq:周期索引的频率:‘AS’(年),‘Q’(季度),‘M’(月),‘W’(星期),‘D’(天)
axis:0:表示行,1:表示列,默认0
copy:是否复制数据
返回值:带周期索引的时间序列

2).示例:

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  # 处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)  # 无法对齐主要是因为列标题是中文

df = pd.read_excel('F:\\Note\\图书采购清单.xlsx', sheet_name='Sheet1')
print(df)
print('*' * 50)

df['发货日期_new']= pd.to_datetime(df['发货日期'])
df = df.set_index('发货日期_new')
print(df)

# 年
print('*' * 25+'年'+'*' * 25)
df2 = df['原价'].resample('AS').sum().to_period('A')
print(df2)

# 季度
print('*' * 25+'季度'+'*' * 25)
df2 = df['原价'].resample('Q').sum().to_period('Q')
print(df2)

# 月
print('*' * 25+'月'+'*' * 25)
df2 = df['原价'].resample('M').sum().to_period('M')
print(df2)

# 星期
print('*' * 25+'星期'+'*' * 25)
df2 = df['原价'].resample('W').sum().to_period('W')
print(df2)

结果展示:
在这里插入图片描述

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

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

相关文章

Deepwalk详解

算法思想 源于word2vec ,word2vec通过语料库中的句子序列来描述词与词之间的共现关系。进而学习到词语的向量表示,deepwalk则使用图中的节点与节点的共像现关系来学习节点的向量表示。这种借鉴的前提是点在图中的分布和词在句子中的分布都是幂律分布。 …

关于MuLoginWebGL介绍说明:

WebGL就是俗称的硬件显卡型号的意思,在MuLogin中我们提供了多个平台和品牌的显卡芯片指纹。 我们在做实验时,Chrome浏览器和Internet Explorer(Edge)测试取WebGL vendor 会有两种不同值 ,Chrome 取为 Google Inc. Int…

2023年湖北监理工程师考试科目有哪些?考试题型什么样子的?

2023年湖北监理工程师考试科目有哪些?考试题型什么样子的? 一、监理工程师考试科目: 监理工程师考试一共考四科 1. 《建设工程监理基本理论和相关法规》(客观题) 2. 《建设工程合同管理》(客观题) 3. 《建设工程目标控制》(客观题) 4. 《…

社交电商时代,切勿剑走偏锋,始终以产品为中心,模式为辅助

社交电商这个名词近期十分火,参与这个方式的人数以亿计,可以这样说“十亿人民九亿商,八亿人在做电商”。 我们感悟:“传统电商火热,社交电商更火”!那么什么是社交电商呢?社交电商概念&#xff…

必须了解的海外新闻稿写作要点 ️

随着经济全球化的发展,中国企业走向世界是必然的趋势。媒介易小编发现了全球的海外消费者一般了解一个品牌都是去搜索引擎搜索,所以确认海外媒体投放新闻稿是中国企业走向世界必经之路,是密不可分的哟。 新闻稿是公司或机构向媒体发送的手稿。…

Python学习基础笔记十四——函数参数

函数参数这块在前面的博客中没有展开,现在专门整理出来: 1、参数的数量: 1)没有参数:就是定义函数和调用函数的括号中都不写内容。 2)有一个参数:可以是任何数据类型。 3)有多个参…

学习python中的数据结构

数据结构 链表和数组 数组 Python的list是由数组来实现的 有序的元素序列, 在内存中表现为一块连续的内存区域; 链表 通过指针将无序的列表链接起来, 每个节点都存储着当前节点的值和下一个节点的内存地址 链表和数组有什么区别? 实现有序的方式是不一样的, 数组是连续的内…

[附源码]SSM计算机毕业设计网上鞋店管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Pan-cancer image-based detection of clinically actionable genetic alternations

目录 摘要 前言 结果 深度学习模型优化 从组织病理图像预测泛癌基因突变 摘要 肿瘤的分子突变可导致肿瘤细胞及其微环境的表型变化。常规组织病理切片可以反映出这种形态学改变。本研究表明深度学习方法能直接从常规病理图像中推断出广泛的基因突变、肿瘤分子亚型、基因表达…

中纺集团×StarRocks:构建企业级数据资产管理的实践

中纺集团经过“十三五”信息化建设,生成了大量宝贵的数据资源,但也存在信息孤岛、系统壁垒、数据质量等问题。中纺结合企业实际需求,按照集团“十四五”信息化规划中有关数据中台的建设计划与目标要求,历经半年多的测试比选&#…

使用扩展有效对齐 SwiftUI 内容,创建自定义 SwiftUI 方法以快速对齐项目并使您的代码看起来简洁明了(教程含源码)

在开发 iOS 应用程序时,对齐内容可能是一个耗时的过程。如果应用程序有多个屏幕,则需要在不同的地方完成这件事,并可能导致看起来杂乱无章的视图。 作为一个始终致力于让我的代码看起来简单和流线型的人,实现目标所需的大量Spacer()元素常常让我恼火,这就是为什么当我发…

配置Nginx和其他应用的HTTPS访问

使用tomcat或者weblogic部署的应用默认都是http访问的,如果通过https访问,需要ssl证书。tomcat或者weblogic可以配置; 同时,另一种方法,https网站中,如果接口服务是http的,那么请求接口就会被拒…

[美国访问学者J1]签证的材料准备

对于美国访问学者J1签证材料的准备,在这里知识人网老师和大家分享一下: 1. 有效护照:如果您的护照将在距您预计抵美日期的六个月内过期、或已损坏、或护照上已无空白的签证签发页, 请在前来面谈之前先申请一本新护照。 2. DS-160表格确认页。…

vulnhub靶机darkhole

靶机下载地址:DarkHole: 1 ~ VulnHub Kali ip:192.168.174.128 靶机ip:192.168.174.135 靶机ip发现 sudo arp-scan -l 开放端口扫描 nmap -p- -sV -A 192.168.174.135 发现开启了22端口和80端口 目录扫描 gobuster dir -u http://192.168.174.135…

Seal库官方示例(一):bfv_basics.cpp解析

尽量理论来理解代码。 完整代码或者\native\examples里面 说到前面的话 两段官方的话 大致意思就是,这个库有门槛,需要先学会同态的概念,提供的例子必须要看要理解。必看的例子如下, 代码解析 基础加密 参数设置 三个核心…

flutter系列之:在flutter中使用流式布局

文章目录简介Flow和FlowDelegateFlow的应用总结简介 我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整。这时候就会用到flow layout,也就是流式布局。 同样的,在flutter中也有流式布…

真题集P93---2017年计专真题

真题集P93---2017年计专真题六思路:模拟代码七思路一:哈希表法二:排序法 (利用排序去重)三:拓展代码(仅思路一)六 思路:模拟 1、接口介绍 int turnNum(int num[], int nums):拿来一…

数据库约束

约束概述 为什么需要约束 数据完整性(Data Integrity)是指数据的精准性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而…

种草软文怎么写?分享一些超实用的种草软文写作技巧。

一提起“种草”这个词语,想必很多小伙伴都不陌生,我们都有“被种草”的经历,指的就是把一件商品推荐给大家,分享给需要的人,然后促成销售转化的过程。 在一些主流的内容平台,比如知乎、小红书、得物、公众…

Android 9.0 MediaPlayer播放流程分析

1.MediaPlayer初始化流程 EventHandler是后面处理数据回调的handler. 在AudioFlinger.cpp中获取nextUniqueId: audio_unique_id_t AudioFlinger::nextUniqueId(audio_unique_id_use_t use) {// This is the internal API, so it is OK to assert on bad parameter.…