Pandas怎样解析日期的年月日
哈喽大家好,我是蚂蚁啊,给大家分享个Pandas的小知识。
如果一个数据文件中,有一列是日期列,怎样快速提取日期的年、月、日、周、季等信息呢?
方法就是pandas提供的to_datetime函数了,可以看下代码演示:
1、读取数据文件
import pandas as pdfpath = "./datas/beijing_tianqi_2018.csv"df = pd.read_csv(fpath)df.head()
看下数据:
ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel0 2018-01-01 3 -6 晴~多云 东北风 1-2级 59 良 21 2018-01-02 2 -5 阴~多云 东北风 1-2级 49 优 12 2018-01-03 2 -5 多云 北风 1-2级 28 优 13 2018-01-04 0 -8 阴 东北风 1-2级 28 优 14 2018-01-05 3 -6 多云~晴 西北风 1-2级 50 优 1
2、把日期变成索引列
df.set_index(pd.to_datetime(df["ymd"]), inplace=True)# 看下索引列df.indexdf.head().index
我们看到这一列变成了DatetimeIndex类型:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04','2018-01-05'],dtype='datetime64[ns]', name='ymd', freq=None)
3、现在可以直接访问日期的各个属性了
年
# 年df.head().index.year结果:Int64Index([2018, 2018, 2018, 2018, 2018],dtype='int64', name='ymd')
月
# 月df.head().index.month结果:Int64Index([1, 1, 1, 1, 1], dtype='int64', name='ymd')
日
# 日df.head().index.day结果:Int64Index([1, 2, 3, 4, 5], dtype='int64', name='ymd')
周
# 周df.head().index.week结果:Int64Index([1, 1, 1, 1, 1], dtype='int64', name='ymd')
季
# 季df.head().index.quarter结果:Int64Index([1, 1, 1, 1, 1], dtype='int64', name='ymd')
Pandas提供了更多的解析日期的各个属性,链接为:
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#time-date-components
如果觉得本文对你有帮助,帮忙点个赞吧^_^
评论
