join left 大数据_Python 数据分析基础-以世界500强为例

1df1674653682eaf363487c501dd4e9d.png

上篇文章提到了如何爬取500强的信息,本次我们来讲下如何通过python进行数据分析。

开始前先说个数据,2020年世界500强中国(包含香港和台湾)有133家企业入围,合计GDP达到8.7万亿美元,而中国大陆去年的GDP才14.1万亿美元,头部聚集效应可想而知。下面我们来用Python来看怎么分析这些数据。

本文用示例来讲解如何掌握python数据分析的基本方法

  • 一、Python读取文件的方法
  • 二、数据的基础描述
  • 三、DataFrame 排序、增删行列操作
  • 四、DataFrame数据处理:求和、平均数、计数
  • 五、DataFrame的增加行列合并操作等

以下为具体内容

一、Python读取文件的方法

Python读取excel文件有以下三种方式,个人推荐Pandas读取法

1、利用pandas读取

个人比较喜欢直接使用pandas 保存和读取数据,方便好用,特别推荐,只需要三行代码就可以搞定

import pandas as pd

data = pd.read_excel('/Users/***/Fortune500.xlsx')
data

cae34c857ae4352fed21039895b5af1d.png

2、使用xlrd读取Excel

先安装:pip install xlrd,然后读取

import xlrd    # 打开文件 data = xlrd.open_workbook('filename.xlsx')
data.sheet_names()  # 获取所有sheet名字 data.sheets        

data.sheets()       # 获取所有sheet对象 
sheet1 = data.sheet_by_name("test")  # 通过sheet名查找 
sheet2 = data.sheet_by_index(3)  # 通过索引查找 
rows = sheet1.row_values(2)#获取行内容 
cols = sheet1.col_values(3)#获取列内容

3、使用openpyxl库读取Excel

先直接用pip命令安装 openpyxl:pip3 install openpyxl

from openpyxl import load_workbook

excel=load_workbook('/test.xlsx')
table = excel.get_sheet_by_name('Sheet1')

rows=table.max_row #获取行数

cols=table.max_column #获取列数

二、数据的基础描述

一般情况下,会使用 describe、dtypes、info、head等函数简单查看数据的情况和质量,是否需要进一步处理

df.describe()    #汇总统计
df.dtypes   #数据类型
data.shape  
data.info() 
data.head()  #取前几行
data.columns   #观察列名称
data.index  #观察行名称

47188d7942767af27b0da11d3812caa7.png

三、DataFrame 排序、增删行列操作

排序:sort_values(["Revenue","Profit"],ascending=False),根据列来降序或者升序排列

import pandas as pd

data=pd.read_excel('/Users/samuelzhan/爬虫/Fortune500.xlsx')
data.describe()
data.shape

data.sort_values(["Revenue","Profit"],ascending=False)

46685b98adefc5a1aa3a50bea2305bca.png

删除列:drop('列名',axis=1,inplace=True)

对比上图即可观察除多余的一列数据被删除

32cdfa421771cc44aaa8fb76783ad974.png

四、DataFrame数据处理:求和、平均数、计数

求和、计数:都是先选择groupby,然后再汇总分析,案例中是根据国家来做汇总分析,你可以根据行业来汇总分析

此外,在做计数统计中为了减少其他多余的数据,只取了 Country和Revenue两列数据,使用的是 data.loc[:,['Country','Revenue']],Dataframe中提取行列的方法就不做赘述了。

import pandas as pd

data=pd.read_excel('/Users/samuelzhan/爬虫/Fortune500.xlsx')
data.describe()
data.shape

data.sort_values(["Revenue","Profit"],ascending=False)

data.drop(['Unnamed: 0'],axis=1,inplace=True)
data.groupby('Country').sum()
data.loc[:,['Country','Revenue']].groupby('Country').count().rename(columns = {"Revenue": "Count"})

7ea26b4e62f1f45d6ee04ac06b4e20fe.png

967901c3efdacaacc07c85e1f5630f31.png

五、DataFrame的增加行列合并操作

上面我们可以看到,一张图汇总了 不同国家500强企业的收入、利润、员工人数的汇总;一张图汇总了不同国家500强的数量,那如何让他们在一张表中展示出来呢?

import pandas as pd

data=pd.read_excel('/Users/samuelzhan/爬虫/Fortune500.xlsx')
data.describe()
data.shape

data.sort_values(["Revenue","Profit"],ascending=False)

data.drop(['Unnamed: 0'],axis=1,inplace=True)
s1=data.groupby('Country').sum()
s2=data.loc[:,['Country','Revenue']].groupby('Country').count().rename(columns = {"Revenue": "Count"})


merge = pd.merge(s1,s2,on=['Country'],how='inner') 
merge['人均产出']=merge['Revenue']/merge['Employee']
merge.sort_values(by='Count',axis = 0,ascending = False)

cf0505fb8030d37584b5defa31c25afd.png

这里使用了Merge的方法,一般表链接有三种方式:

1、merge

相当于SQL中的JOIN。该函数的典型应用场景是,两张表有相同内容的列(即SQL中的键),现在我们想把两张表整合到一张表里。在此典型情况下,结果集的行数并没有增加,列数则为两个元数据的列数和减去连接键的数量。

参数说明:
merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
left与right:两个不同的DataFrame
how:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner!
on : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键

2、concat 轴向连接。

就是单纯地把两个表拼在一起,这个过程也被称作绑定(binding)或堆叠(stacking)。因此可以想见,这个函数的关键参数应该是 axis,用于指定连接的轴向。axis=1 在行中操作,axis=0是在列中操作。
默认是axis=0,即垂直堆叠。
3、join

加上join参数的属性,如果为’inner’得到的是两表的交集,如果是outer,得到的是两表的并集。

以上,用爬取的500强数据,简单说明了Python DataFrame数据处理的基本方法,下次我们再来讲解如何进行可视化操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值