本篇文章基于上一篇文章进行一定延伸,使用过程中也使用了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 https://pan.baidu.com/s/1SgoR2_VTACgoGtr2KhUI9Q?pwd=1234
提取码:1234
如有不懂,欢迎评论区留言!!!
|