Python有趣|数据分析三板斧

2023-09-23 28 0

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

作者: 罗罗攀

公众号: 罗罗攀

3901436-515e0992fc99ca07

前言

天下武功中,哪个是最简单,最实用的了?那当然是程咬金的三板斧。传说中,程咬金晚上睡觉,梦见一老神仙,教了他三十六式板斧,这套功夫威力极大,而且招式简单,十分适合程咬金,但是程咬金醒来之后就只记住了三招,便有了这三板斧。就是这简单的三板斧,帮助李世民建立大唐江山。

这个教程将以简单,有效,实用为原则,让大家也能简单入门Python数据分析,学会这三板斧,让读者以后在学习数据分析的过程中,少走弯路。

Python数据分析流程

用Python做数据分析的优点就是,通过一个pandas库就能完成整个数据分析流程。简单的流程是,一读二看三处理四分析五展示,skr~。如下图所示。

PS:所有数据分析不以业务为依托,都是耍流氓~

3901436-5490b11ed95e3864

读取数据

这里以全球星巴克的数据为例(https://www.kaggle.com/starbucks/store-locations),首先提出问题(前文说过要以业务为基础,这里我们只能提前定义几个感兴趣的问题),哪些国家星巴克店铺较多;哪些城市星巴克店铺较多;中国星巴克店铺分布情况。

首先通过read_csv读取数据,将文件转换为DataFrame格式,这样我们就可以在Python中进行处理。当然,pandas支持各种文件格式(read_excel,read_sql等等),做详细系列的时候逐一讲解。


  1. import numpy as np

  2. import pandas as pd

  3. data = pd.read_csv('directory.csv')

  4. data.head()

3901436-86e11e37bdabadef

查看数据

我们可以通过describe和info方法对整个数据有个大概的情况。describe用于查看数值型数据的分布情况。


  1. data.describe()

3901436-23e9a51a72d0a11f

info方法用于查看各字段的数据类型,以及缺失情况,可用于后面的数据处理。这里我们根据问题,对country和city字段感兴趣,然后发现city缺失,所以后文中需要对其处理。


  1. data.info()

3901436-678d3fa739d71705

数据处理

数据处理,其实就是我们常说的数据预处理(清洗数据),我们都知道,数据大部分情况下,是不干净的(或者不是我们预期的),我们需要处理,清洗,常出现的处理任务如下:

缺失值处理

异常值处理

重复值处理

多表处理

数据转换处理

这些都是需要根据实际情况来处理的。接着,我们就来处理星巴克数据,首先,查看Brand字段的唯一值,发现除了星巴克还有其他商品(可能是同一厂商的,屌丝表示对星巴克一无所知),我们只取星巴克的数据。

3901436-b04f957f10f4b6e4

之前我们用info函数可以查看缺失值,但是我们常用isnull函数,这样可以清楚看出各字段的缺失值都有多少数据。


  1. data.isnull().sum()

3901436-0966a35236f172ab

因为对city字段感兴趣,所以我们查看到底缺失的数据,是哪些,我们可以看出,大部分是埃及的国家(是不是这些国家没有划分城市,还是说没有录入数据)。


  1. data[data['City'].isnull()]

3901436-793cb6acd92ff483

接着,我们就处理这些缺失值。缺失值一般的处理方法有两种:

删掉

填充

这里我们选择就用国家字段填充到City字段上。


  1. def fill_na(x):

  2. return x

  3. data['City'] = data['City'].fillna(fill_na(data['State/Province']))

  4. data[data['Country']=='EG']

在数据分析中,我发现小美国的数据把台湾当做了国家,这我能忍么?直接重新赋值,换成了中国(中国一点都不能少)。整个的数据处理就到这了。


  1. data['Country'][data['Country'] == 'TW'] = 'CN'

分析+可视化

在python数据分析中,我常常会把分析和可视化结合在一起,首先我们看看哪些国家星巴克店最多。

通过值计数,看看前10个国家。当然,数据分析中也会有各种方法:

值计数

数据分组聚合

透视表


  1. country_count = data['Country'].value_counts()[0:10]

接着,我们就用pandas可视化(后两期再介绍功能更强大的可视化方法)。可以看出:美国和中国的是最多的。


  1. import matplotlib.pyplot as plt

  2. plt.rcParams['font.sans-serif'] = ['simhei'] #指定默认字体

  3. plt.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题

  4. %matplotlib inline

  5. country_count.plot(kind='bar')

3901436-d3048585fa668b72

接着同样的方法,看看哪些城市的星巴克最多?默默发现,上海市最多(竟然不是美国城市),果然中国市场很大嘛。

3901436-d6d6999933496536

最后,筛选出中国地区的数据,看看中国城市的星巴克数量排名。上海最多,北京第二,上榜的也可以看出都是经济较发达的城市~


  1. china_data = data[data['Country'] == 'CN']

  2. city_count = china_data['City'].value_counts()[0:10]

  3. city_count.plot(kind='barh')

3901436-fa68a12c70c998fc

今日互动

代码下载:https://github.com/panluoluo/crawler-analysis,下载完整数据和代码。

Python的爱好者社区历史文章大合集

2018年Python爱好者社区历史文章合集(作者篇)

2018年Python爱好者社区历史文章合集(类型篇)

3901436-9693bb99e3c280de

关注后在公众号内回复“ 课程 ”即可获取:

小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】

小编的Python的入门免费视频课程

小编的Python的快速上手matplotlib可视化库!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告扩展制作免费学习视频。

玩转大数据分析!Spark2.X + Python精华实战课程免费学习视频。

3901436-2cf35c1660273ab4

3901436-e3fe96a1c3f0c9b7

点击阅读原文直降20元包邮带走

代码编程
赞赏

相关文章

3D游戏建模很难学吗?以入职为目的,该如何系统学习?
旋翼问答:升力是怎样产生的?
你一定用得上的MySQL批量插入技巧
N-(3-磺基丙基)-糖精钠盐(SAPS)适用于超薄铜箔制备 吉和昌是国内主要供应商
不了解这12个语法糖,别说你会Java
【C】浅析 #define 宏和函数的区别