Pandas怎样解析日期的年月日

共 1504字,需浏览 4分钟

 ·

2020-12-08 13:17

哈喽大家好,我是蚂蚁啊,给大家分享个Pandas的小知识。


如果一个数据文件中,有一列是日期列,怎样快速提取日期的年、月、日、周、季等信息呢?


方法就是pandas提供的to_datetime函数了,可以看下代码演示:


1、读取数据文件

import pandas as pd
fpath = "./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


如果觉得本文对你有帮助,帮忙点个赞吧^_^

浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报