关于powerbi和pandas概念对比.docx
微软Powerbi的DAX中的概念和pandas的对照这两天看powerbi的DAX书籍,云山雾罩的。今天搞明白了两个被微软搞得贼复杂得概念举例说一下:范例:订单ID订单时间产户ID制蜘ID渠道原单价折扣销俵单价数S销售价格是否会员01000000012016-09-24999194线下偿8.01.00800.0540.0非会员11000000022016-09-24999105线下例400.01.00400.041600.0非会员21000000032016-09-24100001191妣自营800.01.00800.01800.0会员31000000042016-09-2410000292线下f60.01.0060.05300.0会员41000000052016-09-24999155妣自营800.00.85680.053400.0非会员1相关概念释义1.1上下文概念上下文就是Pandas中得筛选条件比如:In3:0ut3:ffPoWerbi中的上下文的概念二端选刊城市1加3的城市可1头再添加别的通选比如0::(11'厂产品1/:6),:'$等,尴小寸(1门=(1210(:(1£城市1了=3),:df1JnieiD订单时SgaID产品城市里滔原单折销售单数销售价是否“里ID间自尸QRID1架IH价扣价格会员51000000062016-09-241003QF1I虹目菅6.00.95570.042280.0会员6IO(Xx)O0072016-09-2499953线下ra300.00.80240.04960.0三哙员81000000092016-09-24999,t自营3.00.95285.02570.0峥员91000000102016-09-241005201%t1自百600.01.00600.042400.0会员131000000142016-09-2499923虹自首3.01.003.0412.0三哙员1.2度量值概念In5:#Powerbi中的度量值的概念df2=df1.groupby(“城市ID")”数量".sum().squeeze0df21°ut:7855度量值的概念理解如下:假设pandas为比较底层的使用数据加工工具,直接使用方法和参数,比较直接,类似于底层的代码编程,但是学习难度一开始比较大,熟练后使用便捷。微软的powerbi的DAX函数,是在更底层的类似pandas函数基础上进行了封装,加工出更多的积木,更多的积木,可以堆积使用。但是增加了上下文概念还有度量值的概念,让人便于使用,但是更难于理解。结论:还是多学习PandaS更究竟,对于数据分析更便捷。DAX使用对于数据展示更便捷!2DAX函数的pandas解释文档2.1AVERAGE(co1umn)类型的函数厂函数含义例子返回的结果-AVERAGE(co1umn)寰东将数字向下舍入到最接近的整数或第二个参数的最接近倍数AVERAGE('学生成绩成.绩)返回学生成绩表中成绩字段的平均值MAX(co1umn)返回列中的最大数值MAX(,的售明编表'编置返回用大值M1N(COIUmn)返同列中的最小数值MIN(悯售明细表'««:)_返回倩酷最小值MAXX(tab1e,expreaekm)返回通过为表的每-行计算表达式而得出的最小数值度Ii值=MAXX(,销售统if*,.价格*数依D返回箱皆统计表中价格字段乘以数猿字段后最大的值M1NX(tab1e.expression)返回通过为我的每-行计算表达式而得I出的被小数值度址值=M1NX。销售统计价格【数属D返回销官统计表中价格字段乘以数量字段后最小的值COUNT(公OIU1nn)返回列中数字嘏的数目COUNT(,第密明翘数1省2)_返回省份的个数1,>1TR<N'tI.1I.,D17HMI一返回数据表中的行效/列散Coiintrows店铺分类表')返回店1分类表的数据行数2.1.1范例一:Pandas:In3:df.groupby("fee")"amount"meanOOut3:amountfee管理费用3.938243e÷04销售费用1.595483e+06度量值度Rffi前面的条件E1UEtnSB1匕*MVk19OIEQ*E3BSa«*EIPQ7QQ管理费用交通费1.650000e+04工资1.453571e+05销售费用招待费电话费社保餐饮费交通费工资招待费电话费社保餐饮费1.310000e+041.512500e+041.475000e+041.380000e+041.638730e+061.891196e+061.387670e+061.607980e+061.500422e+061.497617e+06管理费用39,382.43销售费用1,595,483.24总计817,432.842.1.2范例二:度量值一致,前面的上下文不一致PandasIn4:df.groupby(,fee”c1assify")"amount",mean()Out4:amountfeec1assifyPowerbi:KMErhIXU.MVk1dOB9fiE3管理费用餐饮费13,800.00管理费用电话费15,125.00管理费用工资145,357.14管理费用交通费16,500.00管理费用社保14,750.00管理费用招待费13,100.00销售费用餐饮费1,497,616.67销售费用电话费1,607,980.00艄售费用工资1.891,195.71总计817,432.84总结:我们可以看到所谓的上下文就是pandas的一个对象在本例中上下文用Pandas表达就是groupbyed=df.groupby(ttfee",nC1assify")在pandas中这个groupbyed对象就是如下表现:In6:groupbyed=df.groupby(*fee*,*c1assify*)CgroupEyecT?Out6:<andas.core.groupby.generic.DataFrameGroupByobjectat0x000001F71BD3F910>那么度量值就是后面的:In8:groupbyed1amount,.mean0Out8:amountfeec1assify管理费用交通费1.650000+04工资1.453571e+05招待费1.3100+04电话费1.512500e+04社保1.475000+04餐饮费1.380000e+04销售费用交通费1.638730+06工资1.891196+062.2MAXX(tab1e,expression)类的函数Pandas:In8:Out8:df.eva1(*tota1=amount*beishu*).groupby("fee")丘"tota1”力max()tota1fee管理费用2049销售费用2181In10:#也可以使用app1y,axis=1进行横向计算df“tota1"=df.app1y(1ambdax:x.amount*x.beishu,axis=1)df.groupby("fee")"tota1",max()Out10:tota1fee管理费用2049销售费用2181使用powerbi设置度量值198.00I电话费209.00I工资227.86I交通费220.00I社保209.00I招待费306.33管理费用2,049.00I销售费用2.181.00总计»m2f181.00Mf1R可慢化必JtsnnM.BunIUHVkIOOEQ®<*口图E9日E1IeIRFy巨228.3S对于度量值进行上下文的筛选管理费用2,049.00Pat*销售费用2,181.00总计2,181.001.J立胸时象上Bfmee<1Mmaxfee*生喻VGSitOT±St)MMK.玄虞公淮JaBrr於、JM口班Wi&匡啦宫加国U1巴3由阻曲金凶号ES©EBQ6公口困四唠值IG1Rpy巨唱口国?口田?必JZv×ImmV×MK京此处XO砧8SUMmRj4X5UMbmuJCtourfy】8yo_1month2.3COUNTROWSPandas:In13:1en(df)Out13:74Powerbi度量值设定:I¾WfftcOUN1ROWSCOUNTRCWS(feeei)-»raVttR337.00电话费340.33Iffi357.57交通费331.00社保309.00管理费用2,049U销售费用2,181.00总计2,181.00可及化74BMcowwsW,-rem*stW-*wMI,匕:CGB3口*nto在图表中进行设定生成视觉对软IQ解74iCOUNTROWS此视砌Jr1t的saSbacountrows是(全韵处添加段此页上的簿选制在此处添加效珥字段昌盛回Py山加收。IIR玄 的区分房合一 IHR必冒田口为昌IJMQ园唱所育页面上的端选SSKMCOUNTROWSyX在此处港葭砧取蒋报袤保留所有箍选第口目度4AVEaBKMCoUNTR.白度量值EaXXOamountObeishu c1assify Zday feeMOmonth