我是靠谱客的博主 懦弱枫叶,最近开发中收集的这篇文章主要介绍python、pandas、Excel、Powerbi中对日期的处理方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主要针对datetime类型的时间

以下为用举例的方式来说明在不同场景下,使用不同工具处理时间的方法

1、python对日期的处理

  • 功能1:日期相减后天数差值和秒差值
dt = datetime(2020, 1, 2, 2, 45, 2)
dt1 = datetime(2020, 1, 4, 0, 0, 1)
dx = dt1 - dt
dx.days,dx.seconds
  • 功能2:获取日期中的天数、分钟数、年月日组合、时分秒组合
dt.day
dt.minute
dt.date()
dt.time()
  • 功能3:格式化输出日期:
dt.strftime('%m/%d/%Y %H:%M')
# 01/02/2020 02:45
类型描述
%Y四位的年份
%y两位的年份
%m两位的月份 [01,12]
%d两位的天数值 [01,31]
%H小时制(24小时制)[0,23]
%I小时制(12小时制)[01,12]
%M两位的分钟值[00,59]
%S秒值[00,61] (60,61)用于区分闰秒
%w星期值[0(星期天),6]
%U一年中的第几个星期[00,53]
%F%Y-%m-%d的缩写
%D%m/%d/%y的缩写

2、SQL对日期的处理

  • 功能1:日期相减(判断间隔是否1天)
    方式:
DATEDIFF(今天.date,昨天.date) = 1
  • 功能2:分年查询
select year(makedate) as year, count(id) as total from tb_record group by year;
  • 功能3:判断时间区间(between…and…)
SELECT # 仅在2019年春季售出的产品
	DISTINCT s.product_id,
    p.product_name
FROM
	Sales AS s
    INNER JOIN Product AS p
    ON s.product_id = p.product_id
WHERE
	s.product_id NOT IN(
		SELECT  # 在2019年春季之外出售过的产品
			DISTINCT product_id
		FROM
			Sales
		WHERE
			sale_date NOT BETWEEN '2019-01-01' AND '2019-03-31'
	);

3、Pandas对日期的处理

  • 功能1:日期转换为datetime类型
    方式:
pd.to_datetime(日期)
  • 功能2:日期相减(求年龄)
csv_df['age'] = np.floor((pd.to_datetime('2018-7-1')-pd.to_datetime(csv_df.birthday))/timedelta(days=365))
  • 功能3:日期比较判断
from datetime import datetime
start_time =datetime(2019,1,1)
end_time=datetime(2019,12,31,23,59,59)

order_df = order_df[(order_df.payTime>=start_time) & (order_df.payTime<=end_time)]
order_df.shape
  • 功能4:获取日期中的月份、星期
order_df['month']=order_df.orderTime.dt.month
order_df['weekday'] = order_df.orderTime.dt.weekday
  • 功能6:日期的近似取值
# floor('30T')表示向下取时间,已30分钟为界限,30分钟以内为0分钟,30分钟以上为30分钟
order_df['time'] = order_df.orderTime.dt.floor('30T')
#取出时间time,去掉年月日
order_df['time'] = order_df.time.dt.time

  • 功能7:只显示月和日
for i in range(len(df2)):
    df2.iloc[i,0] = pd.to_datetime(df2.iloc[i,0]).strftime("%m-%d")  
df2.head()

4、Excel对日期的处理

  • 功能1:日期之间求差
    在这里插入图片描述
  • 功能2:其他日期函数
    在这里插入图片描述

在这里插入图片描述

功能方式
该月最后一天=DATE(YEAR(A2),MONTH(A2)+1,1)-1
该月最后一天=EOMONTH(A2,0)
后一月最后一天=EOMONTH(A3,1)
星期几=TEXT(A4,“dddd”)
该月有多少天=DAY(C3)
第几季度=IF(MONTH(A2)/3<=1,1,IF(MONTH(A2)/3<=2,2,IF(MONTH(A2)/3<=3,3,4)))
第几季度=ROUNDUP(MONTH(A3),0)

5、PowerBi对日期的处理

功能1:时间间隔
时间间隔小时:

时间间隔 = DATEDIFF([订单创建时间],[订单付款时间 ],HOUR)

时间间隔分钟:

时间间隔分钟 = DATEDIFF([订单创建时间],[订单付款时间 ],MINUTE)

最后

以上就是懦弱枫叶为你收集整理的python、pandas、Excel、Powerbi中对日期的处理方法的全部内容,希望文章能够帮你解决python、pandas、Excel、Powerbi中对日期的处理方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部