Pandas怎样解析日期的年月日
哈喽大家好,我是蚂蚁啊,给大家分享个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 aqiLevel
0 2018-01-01 3 -6 晴~多云 东北风 1-2级 59 良 2
1 2018-01-02 2 -5 阴~多云 东北风 1-2级 49 优 1
2 2018-01-03 2 -5 多云 北风 1-2级 28 优 1
3 2018-01-04 0 -8 阴 东北风 1-2级 28 优 1
4 2018-01-05 3 -6 多云~晴 西北风 1-2级 50 优 1
2、把日期变成索引列
df.set_index(pd.to_datetime(df["ymd"]), inplace=True)
# 看下索引列df.index
df.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
如果觉得本文对你有帮助,帮忙点个赞吧^_^
评论