pandas 时间类处理

import pandas  as pd

周期增长

按年周期增长

datetime_year_series = pd.Series(
    pd.date_range("2000-01-01", periods=6, freq="Y")
)
#datetime_year_series

按月周期增长

datetime_month_series = pd.Series(
    pd.date_range("2000-01-01", periods=6, freq="M")
)
#datetime_month_series

按日周期增长

#freq的默认参数就是"D",不加这个参数,也是以"日"增长。
datetime_day_series = pd.Series(
    pd.date_range("2000-01-01", periods=6, freq="D")
)
#datetime_day_series
#时、分、秒、毫秒、纳秒分别是 h、T、s、us、ns

 获取年、月、日

# get year
datetime_year_series.dt.year
# get month
datetime_month_series.dt.month
# get day
datetime_month_series.dt.day
#时、分、秒、毫秒、纳秒分别是 dt.hour、dt.minute、dt.second、dt.microsecond、dt.nanosecond

 自行设置起始和终止时间

pd.date_range('2016-12-31', '2017-01-08', freq='D').to_series()
#年月日,同理

 

dayofweek 一个星期的哪一天

Monday=0, Sunday=6

#中间的分隔符,"/"和"-"都可以,不加也可以
s = pd.date_range('2021-12-10', '20211217', freq='D').to_series()
s.dt.dayofweek

 判断月初、以及月末

s = pd.Series(pd.date_range("2018-02-27", periods=3))
#判断月初
s.dt.is_month_start
#判断月末
s.dt.is_month_end

data = pd.DataFrame(pd.date_range("2021-02-27", periods=3),columns=["date"])
data['start'] = data['date'].dt.is_month_start
data['end'] = data['date'].dt.is_month_end
data

 判断某个日期在哪个季度

data2 = pd.DataFrame(pd.date_range("2021-03-30", periods=4),columns=["date"])
data2['quarter'] = data2['date'].dt.quarter
data2

 判断季度初、以及季度末

data2['quarter_start'] = data2['date'].dt.is_quarter_start
data2['quarter_end'] = data2['date'].dt.is_quarter_end
data2
#同理,一年的第一天和最后一天,is_year_start, is_year_end

 判断年是不是闰年(leap year)

data3 = pd.DataFrame(pd.date_range("2011-01-01","2021-01-01", freq="Y"),columns=["years"])
data3['leap'] = data3['years'].dt.is_leap_year
data3

 返回月份的名字

data4 = pd.DataFrame(pd.date_range(start="2021-01", freq="M", periods = 5),columns=['month'])
data4['month_name'] = data4['month'].dt.month_name()
data4

 返回天的名字

data5 = pd.DataFrame(pd.date_range(start="2021-12/11", freq="D", periods = 8),columns=['Day'])
data5['day_name'] = data5['Day'].dt.day_name()
data5

 计算一天的描述

import numpy as np
data6 = pd.DataFrame(pd.Series(pd.to_timedelta(np.arange(5), unit='d')),columns=['Day'])
data6['seconds'] = data6['Day'].dt.total_seconds()
data6

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heianduck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值