Pandas日期时间类型
-
导包
from datetime import datetime # 原生python包内容
-
获取当前时间
t1 =datetime.now()
输出:t1
-
手动设置日期
自定义变量名 =datetime(年,月,日)
例如:t1 = datetime(2024,5,1)
-
计算日期差
简单讲:就是两个日期相减法,t2-t1
-
Pandas中将字符串日期转换为datetime类型
方法1:to_datetime()实现
方法2:自定义变量名.Timestamp(2024,5,1) # 时间戳
方法3:自定义变量名.datetime(2024,5,1) #日期时间对象
方法4:在读取文件时,加入 parse_dates=[需要转换的列名],就可以设置为日期列
-
pd.to_datetime 一列数据
-
pd.read_csv(parse_dates) =[列名/序号]加载时候直接进行转换
-
可通过Pandas提供的API生成日期时间序列
pd.date_range('起始时间','结束时间',freq=生成时间序列方式)
-
在特征处理/数据处理 看见日期时间类型数据若需要当前就想了解这一列数据,可以做出很多列特征来展示
-
df['Date'].dt.year 年
-
df['Date'].dt.month 月
-
df['Date'].dt.day 日
-
df['Date'].dt.quarter 季度
-
df['Date'].dt.dayofweek 星期几
-
若想快速对日期进行切片/范围选取操作,可将其转换成日期索引
-
between_time(include_start,include_end) 在两个时刻的范围内
-
at_time 在某个具体时刻
-
set_inde('列名',inplace=True) 将某列设置为行索引,若加载数据时没有设置,则可使用上述语法
-
index_col =‘某列’,表示将某列设置为行索引,一般应用于导入文件语法中
-
sort_index() 根据行索引进行排序,默认升序
-
resample() 重采样,可按照指定周期分组
-
W:表示按 周 分组
-
M:表示按 月 分组
-
Q: 表示按 季度 分组
-
若对Datetimeindex类型进行切片操作,建议 先排序,再切片,效率更高
-
-
.plot (kind ='barh',title='标题') 其中barh:设置为水平柱状图,title:设置为标题
-
日期时间类型-获取日期中不同部分(示例获取年月日数据)
-
获取日期时间类型 对象
自定义变量名 = pd.to_datetime('2024-05-13') 自定义变量名 # 查看是否为日期类
-
获取年
自定义变量名.year # 年 自定义变量名.month # 月 自定义变量名.day # 日 time_stamp.dayofyear # 年中的第几天
-
获取某数据集年,月日
# .dt 是把Series对象转成DatetimeProperties对象 自定义变量名['year'] = 自定义变量名['Date'].dt.year 自定义变量名['month'] = 自定义变量名['Date'].dt.month 自定义变量名['day'] = 自定义变量名['Date'].dt.day
-
查看信息
自定义变量名.info()
日期时间索引
通过:自定义变量名.set_index('列名',inplace=Ture) 实现
生成日期时间序列
-
格式
pd.date_range('起始时间','结束时间',freq=生成时间序列的方式) # frequency:出现的频次
数据可视化
可视化概述
-
-
数据可视化指可直观展现数据
-
将数值绘制成图像,便于更加直观理解数据,纯看数据表过于费时
-
有助于揭示数据中隐藏模式,在数据分析时,可利用浙西模式选择模型
-
可视化库
-
-
基于Matplotlib绘制静态图形
-
pandas
-
seaborn
-
-
基于JS(javaScript)
-
pyecharts/echarts
-
plotly
-
-
MatplotlibAPI
在Matplotlib中提供两种方式作图:状态接口、面向对象
-
状态接口
-
-
若录入中文是乱码,可使用以下代码进行纠正
import matplotlib.pyplot as plt
导入包状态接口 绘图
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号import matplotlib.pyplot as plt
-
准备x轴和y轴数据
x = [自定义范围1,2,3]
y=[自定义范围1,2,3]
-
创建画布
plt.figure(figsize =(15,6))
-
绘图
plt.plot(x,y)
plt.grid(True) # 添加网格线
-
设置x轴坐标 和y轴坐标范围
plt.xlim(自定义范围1,2)
plt.ylim(自定义范围1,2)
-
设置x轴 和y轴标签
plt.xlabel('自定义x轴名称',size=自定义大小)
plt.ylabel('自定义y轴名称',size=自定义大小)
-
设置标题
plt.title('自定义标题名',size=自定义大小)
-
显示图例
plt.show()
-
-
面向对象
-
导入包
import matplotlib.pyplot as plt
-
准备x轴和y轴数据
x = [自定义范围1,2,3]
y=[自定义范围1,2,3]
-
创建画布,坐标轴对象
fig,ax = plt.subplots(figsize = (自定义大小1,2))
-
绘图,传入x轴,y轴
ax.plot(x,y)
ax.grid(True) # 添加网格线
-
设置x轴坐标 和y轴坐标范围
ax.set_xlim(自定义范围1,自定义范围2)
ax.set_ylim(自定义范围1,自定义范围2)
-
设置x轴 和y轴标签
plt.set_xlabel('自定义x轴名称',size=自定义大小)
plt.set_ylabel('自定义y轴名称',size=自定义大小)
-
设置标题
ax.set_title('自定义标题名',size=自定义大小)
-
显示图例
plt.show()
-