九、python-时间数据格式转换

这篇具有很好参考价值的文章主要介绍了九、python-时间数据格式转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、获取数据格式

print(type(字符串))

2、时间格式

关于数据格式转换,最常用的就是时间格式的转换

如果时间数据是以字符串格式存入,那就无法进行时间运算,需要把字符串格式的时间数据转换成真正的时间格式数据。下面是常见的时间格式处理方法

2.1、写入一个时间类型的数据

首先,导入datetime模块,使用datetime()函数;
然后,按照年、月、日、时、分、秒依次传入数字组成一个时间。其中(年、月、日)是必要的参数;

import numpy as np
import pandas as pd
from datetime import datetime

start = datetime(2020, 5, 1, 23, 59, 59)
print(start)
#输出:2020-05-01 23:59:59


end = datetime(2020, 10, 1)
print(end)
#输出:2020-10-01 00:00:00

2.2、获取当前年月日时分秒信息

from datetime import datetime
#获取当前日期
today=datetime.datetime.now()

today
#Out[195]: datetime.datetime(2023, 3, 27, 20, 50, 57, 225711)
today.year
#Out[196]: 2023
today.month
#Out[197]: 3
today.day
#Out[198]: 27

#获取当前时间
now=datetime.datetime.now().time()
now.hour
#Out[190]: 20
now.minute
#Out[191]: 49
now.second
#Out[192]: 51

2.3、字符串数据转时间数据

单一字符串和数据框中的字符串时间转换方法不同

  • 单一字符串转换日期格式
#单一字符串转日期
time=datetime.strptime('20220201', '%Y%m%d')
time
#Out[101]: datetime.datetime(2022, 2, 1, 0, 0)
  • 数据框中字符串转日期格式

错误示例!:不能用datetime.strptime转换,因为datetime.strptime只能处理单一字符串数值,无法处理序列数据,而数据框中的单一列是一个序列数据

import pandas as pd
df=pd.read_excel("/Users/tinawang/Documents/python/case.xlsx",sheet_name="sj")
df
df["date_a"]=datetime.strptime(df["date_a"], '%Y%m%d')
#输出报错:TypeError: strptime() argument 1 must be str, not Series

正确示例:利用pandas模块中的to_datetime()函数,但是要注意。to_datetime()函数默认处理yyyy-mm-dd格式数据,如果数据是其他格式如yyyymmdd,需要利用format参数表明函数格式

转换为时间格式的数据,可以获取年月日信息,可以通过后缀.dt可以把时间类型的数据转成一种方便我们提取日期或时间的对象,这种对象包含多种属性,其中就有 year(年)、month(月)、day(日)、week(周)、hour(时)、minute(分)、second(秒)

date_a date_b time
20220201 2022-02-21 2022/03/01 12:30
20220202 2022-02-15 2022/03/02 12:34
import pandas as pd
df=pd.read_excel("/Users/tinawang/Documents/python/case.xlsx",sheet_name="sj")
print(df)

# 使用to_datetime()函数
df["date_a_new"] = pd.to_datetime(df["date_a"],format='%Y%m%d')
print(df)
df["date_b_new"] = pd.to_datetime(df["date_b"])
df["time_new"] = pd.to_datetime(df["time"])



2.4、时间计算

在Python中,时间数据可能有下面三种形式:

具体的时间点 2023/03/26 12:00:00 datetime
时间间隔 3 days,2 months timedelta
时期 2023年3月 period

已经转换为时间格式的数据可以直接进行加减运算,两个日期相减得到的就是时间间隔的形式

from datetime import datetime
start = datetime(2020, 5, 1, 23, 59, 59)
end = datetime(2020, 10, 1)
timeSpan = end - start
print(timeSpan)
#152 days, 0:00:01

print(type(timeSpan))
#<class 'datetime.timedelta'>
import pandas as pd
df=pd.read_excel("/Users/tinawang/Documents/python/case.xlsx",sheet_name="sj")
print(df)
#转换时间格式
df["date_a_new"] = pd.to_datetime(df["date_a"],format='%Y%m%d')
df["date_b_new"] = pd.to_datetime(df["date_b"])
#增加1天
df['next_tomorrow']=df["date_a_new"]+datetime.timedelta(days = 1)
#增加一周
df['next_week']=df["date_a_new"]+datetime.timedelta(weeks=1)
#计算间隔
df['gap']=df["date_b_new"]-df["date_a_new"]

print(df)
#输出结果
     date_a      date_b              time  ... next_tomorrow  next_week     gap
0  20220201  2022-02-21  2022/03/01 12:30  ...    2022-02-02 2022-02-08 20 days
1  20220202  2022-02-15  2022/03/02 12:34  ...    2022-02-03 2022-02-09 13 days


2.5、时间格式转字符串

时间格式的数据,可以获取年月日信息 year(年)、month(月)、day(日)、week(周)、hour(时)、minute(分)、second(秒)

import datetime
today=datetime.datetime.now()
today
today.year
today.month
today.day



now=datetime.datetime.now().time()
now.hour
now.minute
now.second

如果是序列数据,需要通过后缀.dt可以把时间类型的数据转成一种方便我们提取日期或时间的对象文章来源地址https://www.toymoban.com/news/detail-478656.html

import pandas as pd
df=pd.read_excel("/Users/tinawang/Documents/python/case.xlsx",sheet_name="sj")
print(df)
# 使用to_datetime()函数
df["date_a_new"] = pd.to_datetime(df["date_a"],format='%Y%m%d')
print(df)
#获取年月日数据
df["date_a_new"].dt.day
df["date_a_new"].dt.month
df["date_a_new"].dt.year
df["date_a_new"].dt.week

df["date_b_new"] = pd.to_datetime(df["date_b"])
df["date_b_new"].dt.day
df["date_b_new"].dt.month
df["date_b_new"].dt.year
df["date_b_new"].dt.week


#获取时分秒数据
df["time_new"] = pd.to_datetime(df["time"])
df["time_new"].dt.hour
df["time_new"].dt.minute

到了这里,关于九、python-时间数据格式转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实现视频字幕时间轴格式转换

    自己喜欢收藏电影,有时网上能找到的中文字幕文件都不满足自己电影版本。在自己下载的压制版电影中已内封非中文srt字幕时,可以选择自己将srt的时间轴转为ass并替换ass中的时间轴。自己在频繁 复制粘贴改格式的时候想起可以用Python代码完成转换这一操作,借助ChatGPT并

    2024年01月23日
    浏览(41)
  • (Python) Python中三种时间格式的转换方法

    1. 时间元组 1.1. 时间元组和时间戳的互相转化 1.2. 时间元组和字符串的互相转化 2. 字符串与时间戳 字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介. 转化关系图: 3. 时间的加减用法 时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为

    2024年02月05日
    浏览(44)
  • Python中三种时间格式转换的方法

    一 时间元组 1. 时间元组和时间戳的互化 2. 时间元组和字符串的互化 二 字符串与时间戳 字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介. 转化图: 三 时间的加减用法 时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行

    2024年02月13日
    浏览(42)
  • Python time模块时间获取和转换

    格林威治时间(GMT)1970年01月01日00时00分00秒起至现在的总秒数 %Y Year with century as a decimal number.(年) %m Month as a decimal number [01,12].(月) %d Day of the month as a decimal number [01,31].(日) %H Hour (24-hour clock) as a decimal number [00,23].(时-24时) %M Minute as a decimal number [00,59].(分) %S Second as a decimal numbe

    2024年02月02日
    浏览(47)
  • 【Python】【pandas】DataFrame将包含日期值的列转换为日期时间格式或者日期格式

    上代码: 输出结果: 当执行上面的代码时,将执行以下步骤: 导入 pandas 库,以便使用其中的函数和方法。 创建一个名为 df 的DataFrame,其中包含一个名为 \\\'Date\\\' 的列。该列包含了不同的日期值,包括一个无效的日期值 \\\'Invalid Date\\\' 。 使用 pd.to_datetime 函数将 \\\'Date\\\' 列转换为日

    2024年02月05日
    浏览(56)
  • 【Python】-- python与json数据格式的转换

    什么是json? json是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据。 json主要功能 json是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递与交互。 json的作用 为了让不同的语言都能相互通用的传递数据,json是一种很好的中转数据

    2024年02月11日
    浏览(37)
  • [22007] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]从字符串转换日期和/或时间时,转换失败。 (241)过滤非法日期格式数据

    出现这个错误是因为你在SQL Server中尝试将一个无效的字符串转换为日期或时间格式。为了解决这个问题,你需要过滤掉不合法的数据。 你可以使用TRY_CONVERT函数来尝试将字符串转换为日期或时间格式,如果转换失败,则返回NULL。然后你可以使用IS NOT NULL来过滤掉这些NULL值。

    2024年02月08日
    浏览(87)
  • Java——时间戳和时间格式转换

    时间戳(TimeStamp):通常是一个字符序列,唯一地标志某一刻的时间。Java 中时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数。 一、获取时间戳的方式 二、Date类 1、无参构造方法——返回结果Thu Dec 15 09:55:39 CST 2022 2、有参构造方法——已废弃 三、时间格式

    2024年02月11日
    浏览(40)
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月15日
    浏览(39)
  • 时间格式转换

    2023年04月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包