Python进阶——datetime数据类型

本篇文章基于上一篇文章进行一定延伸,使用过程中也使用了python的其他第三方库pandas

主要是对于datetime库的datetime对象做分析,介绍了相关的数据类型如:datedelte,detetime等,毕竟类型不同,可以做的东西也不一样。

本文章所有使用的数据都在文章最下面,有需要的小伙伴可以进行实操验证自己的学习成果,如有写的不好的地方,欢迎批评指正!

话不多说,直接上代码!!!

导入的库

from datetime import datetime
import pandas as pd

基础使用

now = datetime.now()  # 获取当前时间,形式为2022-01-23 19:52:01.037051
ago = datetime(1970,1,1)
distance = now - ago  # 可以进行数学运算,返回天数和当前时间(时分秒),类型为timedelta

data = pd.read_csv('country_timeseries.csv')  # Date列包含日期信息,info指出属于字符串对象
data['date'] = pd.to_datetime(data['Date'])  # 通过to_datetime方法转换为日期格式,默认年-月-日
data['dt'] = pd.to_datetime(data['Date'],format='%m/%d/%Y')  # 可以指定形式,仍是datetime类型

"""加载包含日期的数据"""
df = pd.read_csv('country_timeseries.csv', parse_dates=[0])  # 直接指定想要转换为日期的列,通过info方法可以查看数据

"""提取日期的各个部分"""
d = pd.to_datetime('2009-01-01 19:20:04.032561')  # 传入对象为字符串,会返回一个TimeStamp对象
print(d.year, d.month, d.day, d.hour, d.minute, d.second, sep='\n')  # 获取传入日期的各个部分

如果是使用impot语句导入datetime库的话,就得再加上datetime,代码里的datetime是库中的对象,不写绝对路径直接写文件名的原因是因为文件在当前目录下,都是基于大家都了解导入库的基础知识。

大家可以每一句代码都print一下,关于pandas库的知识,在这里只是导入文件,或者说转换数据类型。format的中关于strftime行为如果自己不清楚,可以去我的上一篇文章看看,基本符合日常使用。

在“加载日期的各个部分”下的代码,如果传入的数据只有年月日,就不能输出它的时分秒,毕竟无中生有不现实。使用info属性的操作即“.info()”,可以查看每一列的数据类型。

"""日期运算与Timedelta"""
min_day = data['dt'].min()  # 获取最小时间
data['distance'] = data['dt'] - min_day  # 一定要同类型,获得时间差值,最终获得的列的数据类型为Timedelta

"""datetime方法"""
banks = pd.read_csv('banklist.csv', parse_dates=[5, 6])
banks['close_quarter'] = banks['Closing Date'].dt.quarter  # 获得季度信息,类型为数值型
banks['close_year'] = banks['Closing Date'].dt.year  # 获取年份信息
quantity = banks.groupby(['close_year']).size()  # 获取倒闭银行数量

这里的banks是关于倒闭银行的数据。parse_dates=[5,6]即把第6,7列的数据转换为日期类型,索引从0开始。获取季度信息和年份信息的dt是默认的对象,用于分割日期中所需要的部分。

数据如下,需要的uu们别客气!里面有一个tesla.csv的文件,储存着近5年的某股票数据

https://pan.baidu.com/s/1SgoR2_VTACgoGtr2KhUI9Q?pwd=1234 icon-default.png?t=M0H8https://pan.baidu.com/s/1SgoR2_VTACgoGtr2KhUI9Q?pwd=1234

提取码:1234

如有不懂,欢迎评论区留言!!!

猜你喜欢

转载自blog.csdn.net/qq_60471758/article/details/122657937