Python读财

其他

Pandas数据处理——盘点那些常用的函数(上)

点击上方“Python读数”,选择“星标”公众号重磅干货,第一时间送达在之前的文章中,以图文的方式详细讲解了Pandas中groupby,merge以及map、apply、applymap的原理,掌握好这些原理,再在这个基础上进行一些拓展,基本就可以解决绝大部分比较复杂的数据处理操作了。几篇文章如下,想回看的小伙伴可以再重温一下:
2020年1月18日
其他

Pandas数据处理——一文详解数据拼接方法merge

点击上方“Python读数”,选择“星标”公众号重磅干货,第一时间送达为了方便维护,一般公司的数据在数据库内都是分表存储的,比如用一个表存储所有用户的基本信息,一个表存储用户的消费情况。所以,在日常的数据处理中,经常需要将两张表拼接起来使用,这样的操作对应到SQL中是join,在Pandas中则是用merge来实现。这篇文章就讲一下merge的主要原理。上面的引入部分说到merge是用来拼接两张表的,那么拼接时自然就需要将用户信息一一对应地进行拼接,所以进行拼接的两张表需要有一个共同的识别用户的键(key)。总结来说,整个merge的过程就是将信息一一对应匹配的过程,下面介绍merge的四种类型,分别为'inner'、'left'、'right'和'outer'。innermerge的'inner'的类型称为内连接,它在拼接的过程中会取两张表的键(key)的交集进行拼接。什么意思呢?下面以图解的方式来一步一步拆解。首先我们有以下的数据,左侧和右侧的数据分别代表了用户的基础信息和消费信息,连接两张表的键是userid。现在用'inner'的方式进行mergeIn
2020年1月11日
其他

Pandas数据分析——超好用的Groupby详解

点击上方“Python读数”,选择“星标”公众号重磅干货,第一时间送达在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别、年龄)进行细分,研究用户的使用情况和偏好等。在Pandas中,上述的数据处理操作主要运用groupby完成,这篇文章就介绍一下groupby的基本原理及对应的agg、transform和apply操作。为了后续图解的方便,采用模拟生成的10个样本数据,代码和数据如下:company=["A","B","C"]data=pd.DataFrame({
2020年1月5日
其他

Pandas数据处理三板斧,你会几板?

在日常的数据处理中,经常会对一个DataFrame进行逐行、逐列和逐元素的操作,对应这些操作,Pandas中的map、apply和applymap可以解决绝大部分这样的数据处理需求。这篇文章就以案例附带图解的方式,为大家详细介绍一下这三个方法的实现原理,相信读完本文后,不论是小白还是Pandas的进阶学习者,都会对这三个方法有更深入的理解。本文演示的数据集是模拟生成的,想练手的可以按下方的代码生成。boolean=[True,False]gender=["男","女"]color=["white","black","yellow"]data=pd.DataFrame({
2019年12月29日
其他

大话NBA | 用数据带你回顾乔丹的职业生涯

乔丹是联盟上下公认的历史第一人,芝加哥公牛在他带领下几乎统治了上世纪90年代NBA整整10年,包括分别在91-93赛季和96-98赛季拿下的两次三连冠,要知道,NBA72年历史上一共只出现过4次三连冠,而乔帮主一人便承包一半。下面就带大家从数据的角度回顾一下乔丹的职业生涯。数据来源:nba-stat注:nba历史统计原因,仅存1985-86赛季之后的单场比赛球员数据常规赛数据分析各个赛季的场均得分以及胜率从场均得分来看,乔丹没有一个赛季的场均得分低过20,巅峰时期的赛季场均得分基本都在30分左右,86-87赛季,伤愈归来的乔丹场均得分较上一赛季暴涨近15分达到了37分(真的太恐怖了),10次NBA得分王不是白来的。从单个赛季的胜率来看,从85-86赛季到95-96赛季,胜率处于一个上升的通道,记录了公牛的一步步崛起,在乔丹两次三连冠期间(91-93和96-98)赛季的胜率均超过70%,最高有接近90%的胜率(72胜10负),公牛王朝的统治力毋庸置疑。单场比赛各个得分段占比纵观乔丹整个职业生涯常规赛的得分分布,其每场比赛的得分主要集中在20-40这个得分段,虽说20及以下的场次占比也达到了近16%(对比起其他人算非常少的了),但这些场次主要还是发生在他的第二次复出之后(共69场),值得一提的是,乔丹第二次宣布复出的时候已经38岁了。乔丹的进攻偏好乔丹的得分如此出色,那他在得分选择方面有什么偏好呢?常规赛得分的构成又是怎样的?从两个圆环图中可以看出,乔丹更偏向于两分出手,整个职业生涯三分的出手数仅占7.53%,得分也主要来源于罚球和两分球,这和现在NBA的进攻风格形成了较大的差异,另一方面,这也体现出了老流氓的恐怖之处,靠着一手中投拿了10次NBA得分王,前无古人,后能不能有来者呢?生涯与各个球队的对战情况在90年代,乔丹对于每个球队而言几乎是一个闻风丧胆的存在,那乔丹面对哪些球队有更高的胜率?面对哪些球队能有更强的得分表现?从对阵联盟各个球队的场均得分图中看,乔丹在对阵绝大部分球队时场均得分能超过25,甚至对过半数的球队能达到场均30分的水平(这砍分能力也是没谁了),排名前三的都是西部的球队,乔丹是一打西部的球队就兴奋,还是西部的球队比较强,需要乔丹不断输出?乔丹在对阵快船、灰熊、公牛(奇才时代)时的胜率都超过了80%,对阵大部分球队均能达到60%以上的胜率,然而从图中也可以看出,爵士、湖人、火箭、活塞是乔丹职业生涯中最大的四个苦主。输赢时的分差状况分差一定程度上体现了一场比赛的激烈程度,我们来看看乔丹在输和赢时的分差情况。当球队赢球时,分差从从个位数到四五十的都有,主要集中于5-20分这个区间,20-30分区间的比赛也不少,有少部分比赛能超过40分;当输球时,分差在20分以上的场次较少,输30分以上的场次也不过5场。不论输还是赢,分差在10分以内的比赛占了绝大多数,说明即使乔丹很强,但大多数比赛还没到一边倒的局势,同时代还是有挺多强队,比赛还是很有看头的。季后赛数据分析季后赛是巨星的舞台,也是检验一只球队的验金石,乔丹虽然得了6个总冠军,铸造了公牛王朝,但是在季后赛的旅途上也并不是一帆风顺,直到28岁才拿到了第一个总冠军,下面就通过数据,来回忆一下乔丹的季后赛之旅。乔丹的季后赛之路乔丹的季后赛之旅并不顺畅,虽然新秀赛季就凭着无解的表现杀入季后赛,但第一轮面对综合更强的雄鹿惨遭1-3,随后又两度在第一轮被伯德、麦克海尔所带领的凯尔特人队横扫。在随后的三年,虽有两年杀到了分区决赛,但最终三度输给了托马斯所率领的活塞队。终于在90-91赛季,公牛队4:0横扫了宿敌活塞,并在总决赛中以4:1力克湖人拿到了最后的总冠军,这也是乔丹职业生涯的第一个总冠军。此后的两次三连冠也彻底奠定了乔丹在NBA历史上无人可以撼动的地位,6次总决赛,6次冠军+6FMVP,论流氓老流氓还是独一档的。各轮次的输赢分差我们再来看看乔丹的季后赛之旅的胜负分差状况,图中红色点代表赢时的分差,绿色点代表输时的分差,可以看到乔丹在季后赛中输的比赛分差大多都在10分以内,分差超过二十的总共就三场比赛,但是赢的时候的分差总体来讲还是挺恐怖的……常规赛和季后赛场均得分对比看过NBA的球迷应该都知道,季后赛的防守强度比常规赛时大得多,尤其是在乔丹的那个年代防守,即便是这样,乔丹在他打过的季后赛中只有三个赛季的季后赛场均得分低于常规赛场均得分(大多数的常规赛场均得分是30分上下),虽然没有亲历乔丹打球的年代,但透过这些数据,也深感乔帮主的强大!最后的福利就上几个乔丹的经典瞬间吧!注:为了提升阅读体验,没有展示相关代码,有兴趣的同学可以在微信公众号「易执」后台回复关键词【乔丹】获取完整代码以及相应的数据,动手练起来!有什么想说的也可以点击下方的留言板留言哦(可以匿名留言哈哈)!原创不易,如果觉得有点用,希望可以随手转发或者
2019年12月15日
其他

一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!

进行操作时,尽量使用Python的内置函数,能够提高运行效率。(数据用的还是上面的测试用例)1、agg+Python内置函数2、agg+非内置函数可以看到对
2019年12月12日
其他

互联网寒冬下,数据分析师还吃香吗?

Seaborn5分钟入门(六)——heatmap热力图关注我们公众号ID:Python读财一个记录成长的公众号
2019年12月9日
其他

Python可视化 | Seaborn5分钟入门(六)——heatmap热力图

linecolor="grey",cmap="RdBu_r")4#原来的白色间隙变成了灰色间隙cbar_kws:关于颜色带的设置1sns.heatmap(data=data,annot=True,2
2019年12月5日
其他

Seaborn入门系列(五)——lmplot

notebook中实现lmplot(回归图)lmplot是用来绘制回归图的,通过lmplot我们可以直观地总览数据的内在关系先总览一下stripplot的API:seaborn.lmplot(x,
2018年6月22日
其他

Seaborn入门系列(四)——stripplot和swarmplot

order=["Dinner","Lunch"])可以看到x轴上原本的Dinner和Lunch类别的前后顺序变了1sns.stripplot(x="time",y="total_bill",2
2018年6月20日
其他

Seaborn入门系列(三)——boxplot和violinplot

#上图ax=sns.violinplot(x="color",y="age",data=data,hue="smoker",split=True,scale_hue=True,ax=axes[1])
2018年2月27日
其他

Seaborn入门系列(二)——barplot&countplot&pointplot

#右图fig,axes=plt.subplots(1,2)sns.countplot(x="gender",hue="smoker",data=data,ax=axes[0])
2018年2月25日
其他

Seaborn入门系列(一)——kdeplot和distplot

#随机生成100个符合正态分布的数sns.kdeplot(x)cut:参数表示绘制的时候,切除带宽往数轴极限数值的多少(默认为3)sns.kdeplot(x,cut=0)cumulative
2018年2月24日