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)
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程是PowerBI系列课程之DAX函数专题讲解,包含以下内容 1.  DAX函数基础知识什么是DAX函数数学函数:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期时间函数: CALENDAR、CALENDARAUTO、MONTH、YEAR、DATE、DT等信息函数:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑函数:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系函数:CROSSFILTER、RELATED、RELATEDTABLE等筛选器函数:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、EARLIER、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子函数:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计函数:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计函数:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表函数: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、DATATABLE、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本函数: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能函数:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTYEAR等财务函数:2020.7之后发布的,和Excel财务函数相似,网页和demo pbix简单介绍其他函数:BLANK、ERROR、IFERROR等 DAX函数初体验:Max、Sum、Divide、if、Values等值函数表函数以及表和列的概念DAX函数术语、语法、运算符DAX运算符和引擎字母大小写问题DAX编程注释和快捷键DAX与Excel函数的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX函数的自学途径 2.  PowerBI数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位分隔符、小数位、日期格式Format函数自定义数据格式Convert函数做数据类型转换解决文数字单位 万 的显示问题Date和DT函数定义固定日期值显示和隐藏列DAX代码分析器阅读DAX表达式方法:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方法:分布输出或VAR输出3.  DAX函数原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文使用VAR替代EARLIERVAR变量在定义时的上下文计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED函数理解数据沿袭Lineage 4.  开始感知DAX函数的强大DAX函数实现特殊符号的使用DAX函数实现切片器默认当前月或天DAX函数使切片器默认代表无任何选择DAX函数使切片器仅显示有数据的选项DAX函数使切片器反向筛选和计算DAX函数使切片器之间取并集DAX函数使关系多端的切片器筛选一端的切片器 DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标5.  理解重点DAX函数重之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT函数调节器ALL、ALLSELECTED和ISINSCOPE占比分析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表函数SELECTEDCOLUMNS和ADDCOLUMNS重点之表函数NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表函数FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之分组函数SUMMARIZECOLUMNS详解重点之函数LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合函数UNION、INTERSECT、EXCEPT重点之集合函数CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关函数重点之COALESCE函数处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE函数重点之使用VAR变量表的列重点之Error和IfError函数6.  实际案例-日期时间时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比分析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存分析日期分析-计算任意所选月份的环比日期分析-周的同比环比和周聚合日期分析-指定月份的同比环比和季度环比日期分析-计算季末或季末月份的数据日期分析-趋势图根据最近月份取TopN日期分析-动态指定某个日期区间分析日期分析-动态任意区间段做数据对比日期分析-实现两个日期列的范围筛选日期分析-按工作日计算日期日期分析-计算最近两次购买日期日期分析-根据历史数据做销售预测日期时间函数和时间智能函数使用总结7.  实际案例-DAX函数进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-排名逻辑的4种实现-RANKX详解进阶-分组内排名的实现和理解迭代函数进阶-TopN/BottomN和Others的实现进阶-TopN实现动态指标进阶-TopN实现N的动态进阶-分组内动态TopN和Others 进阶-商品折上折-迭代函数SUMX详解 进阶-分析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度分析 进阶-新客户分析进阶-流失客户分析进阶-回流客户分析进阶-客户购买频次和区间分析进阶-RFM客户价值分析进阶-帕累托分析进阶-盈亏平衡分析报表性能优化思路(PPT)  
PythonPowerBI都是常用的数据可视化工具,它们在某些方面有一些显著的差异。 首先,在数据处理方面,Python拥有强大的数据处理和分析能力,可以通过多种库(如Pandas、NumPy、Scikit-learn)对数据进行清洗、转换和分析。相比之下,PowerBI的数据处理能力较弱,主要依赖于Excel表格式的数据处理方式。 其次,在图表和可视化方面,PowerBI提供了丰富多样的内置可视化模板和图表,用户可以通过简单的拖拽和配置来实现数据可视化。Python虽然没有内置的模板,但它具有更大的灵活性和自定义性,通过各种库(如Matplotlib、Seaborn、Plotly)可以创建各种复杂精美的图表和可视化效果。 另外,在与其他工具的集成方面,Python具有较强的开发和扩展性,可以与各种数据库、数据源和API进行无缝连接和集成。PowerBI也可以与多种数据源连接,但它更多地依赖于微软的相关产品和服务。 此外,对于开发人员而言,Python是一种通用的编程语言,具有更高的灵活性和可扩展性,可以进行更复杂的数据处理和自动化操作。而PowerBI更适合于非技术人员和初学者,使用起来更加直观和简单。 总而言之,Python适用于具有较高数据处理和自定义需求的场景,而PowerBI则更适合于快速创建和分享交互式报表和大屏展示。选择哪种工具取决于具体需求、技术能力和使用场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值