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

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值