Python 官方文档:入门教程 => 点击学习
1、获取数据格式 print(type(字符串)) 2、时间格式 关于数据格式转换,最常用的就是时间格式的转换 如果时间数据是以字符串格式存入,那就无法进行时间运算,需要把字符串格式的时间数据转换成真正的时间格式数据。下面是常见的时间格式处
print(type(字符串))
关于数据格式转换,最常用的就是时间格式的转换
如果时间数据是以字符串格式存入,那就无法进行时间运算,需要把字符串格式的时间数据转换成真正的时间格式数据。下面是常见的时间格式处理方法
首先,导入datetime
模块,使用datetime()
函数;然后,
按照年、月、日、时、分、秒依次传入数字组成一个时间。其中(年、月、日)是必要的参数;
import numpy as npimport pandas as pdfrom datetime import datetimestart = datetime(2020, 5, 1, 23, 59, 59)print(start)#输出:2020-05-01 23:59:59end = datetime(2020, 10, 1)print(end)#输出:2020-10-01 00:00:00
from datetime import datetime#获取当前日期today=datetime.datetime.now()today#Out[195]: datetime.datetime(2023, 3, 27, 20, 50, 57, 225711)today.year#Out[196]: 2023today.month#Out[197]: 3today.day#Out[198]: 27#获取当前时间now=datetime.datetime.now().time()now.hour#Out[190]: 20now.minute#Out[191]: 49now.second#Out[192]: 51
单一字符串和数据框中的字符串时间转换方法不同
#单一字符串转日期time=datetime.strptime('20220201', '%Y%m%d')time#Out[101]: datetime.datetime(2022, 2, 1, 0, 0)
错误示例!:不能用datetime.strptime转换,因为datetime.strptime只能处理单一字符串数值,无法处理序列数据,而数据框中的单一列是一个序列数据
import pandas as pddf=pd.read_excel("/Users/tinawang/Documents/python/case.xlsx",sheet_name="sj")dfdf["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 pddf=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"])
在Python中,时间数据可能有下面三种形式:
具体的时间点 | 2023/03/26 12:00:00 | datetime |
时间间隔 | 3 days,2 months | timedelta |
时期 | 2023年3月 | period |
已经转换为时间格式的数据可以直接进行加减运算,两个日期相减得到的就是时间间隔的形式
from datetime import datetimestart = datetime(2020, 5, 1, 23, 59, 59)end = datetime(2020, 10, 1)timeSpan = end - startprint(timeSpan)#152 days, 0:00:01print(type(timeSpan))#
import pandas as pddf=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 gap0 20220201 2022-02-21 2022/03/01 12:30 ... 2022-02-02 2022-02-08 20 days1 20220202 2022-02-15 2022/03/02 12:34 ... 2022-02-03 2022-02-09 13 days
时间格式的数据,可以获取年月日信息 year(年)、month(月)、day(日)、week(周)、hour(时)、minute(分)、second(秒)
import datetimetoday=datetime.datetime.now()todaytoday.yeartoday.monthtoday.daynow=datetime.datetime.now().time()now.hournow.minutenow.second
如果是序列数据,需要通过后缀.dt
可以把时间类型的数据转成一种方便我们提取日期或时间的对象
import pandas as pddf=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.daydf["date_a_new"].dt.monthdf["date_a_new"].dt.yeardf["date_a_new"].dt.weekdf["date_b_new"] = pd.to_datetime(df["date_b"])df["date_b_new"].dt.daydf["date_b_new"].dt.monthdf["date_b_new"].dt.yeardf["date_b_new"].dt.week#获取时分秒数据df["time_new"] = pd.to_datetime(df["time"])df["time_new"].dt.hourdf["time_new"].dt.minute
来源地址:https://blog.csdn.net/weixin_47198715/article/details/129655835
--结束END--
本文标题: 九、python-时间数据格式转换
本文链接: https://lsjlt.com/news/406858.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0