整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

15分钟,教你用Python爬网站数据,并用BI可视

15分钟,教你用Python爬网站数据,并用BI可视化分析!

为一名在数据行业打拼了两年多的数据分析师,虽然目前收入还算ok,但每每想起房价,男儿三十还未立,内心就不免彷徨不已~

两年时间里曾经换过一份工作,一直都是从事大数据相关的行业。目前是一家企业的BI工程师,主要工作就是给业务部门出报表和业务分析报告。

回想自己过去的工作成绩也还算是不错的,多次通过自己分析告,解决了业务的疑难杂症,领导们各种离不开。

但安逸久了总会有点莫名的慌张,所以我所在的这个岗位未来会有多大发展空间,十年之后我能成为什么样的人呢?自己的收入空间还有多少?

一番惆怅之后,别再问路在何方了,于是抄起自己的“家伙”,花了一小会时间爬了智联招聘上BI岗位的数据信息,做了个分析。

PS:所用工具为Python+BI

数据分析的过程如同烧一顿饭,先要数据采集(买菜),然后数据建模(配菜)、数据清洗(洗菜)、数据分析(做菜)、数据可视化(摆盘上菜)。

所以第一步,要采集/选择数据。

一、Python爬取智联招聘岗位信息(附源码)

选择智联招聘,通过Python来进行“BI工程师”的关键数据信息的爬取,这里大家也可以试着爬取自己岗位的关键词,如“数据分析师”、“java开发工程师 ”等。经过F12分析调试,数据是以JSON的形式存储的,可以通过智联招聘提供的接口调用返回。

那么我这边通过Python对智联招聘网站的数据进行解析,爬取了30页数据,并且将岗位名称、公司名称、薪水、所在城市、所属行业、学历要求、工作年限这些关键信息用CSV文件保存下来。

附上完整Python源码:

import requests
import json
import csv
from urllib.parse import urlencode
import time
 
def saveHtml(file_name,file_content): #保存conten对象为html文件
 with open(file_name.replace('/','_')+'.html','wb') as f:
 f.write(file_content)
 
def GetData(url,writer):#解析并将数据保存为CSV文件
 response=requests.get(url)
 data=response.content
 saveHtml('zlzp',data) #保存html文件
 jsondata=json.loads(data)
 dataList=jsondata['data']['results']
 #print(jsondata)
 for dic in dataList:
 jobName=dic['jobName'] #岗位名称
 company=dic['company']['name'] #公司名称
 salary=dic['salary'] #薪水
 city=dic['city']['display'] #城市
 jobtype=dic['jobType']['display'] #所属行业
 eduLevel=dic['eduLevel']['name'] #学历要求
 workingExp=dic['workingExp']['name'] #工作经验
 print(jobName,company,salary,city,jobtype,eduLevel,workingExp)
 writer.writerow([jobName,company,salary,city,jobtype,eduLevel,workingExp])
param={ 'start':0,
 'pageSize':60,
 'cityId':489,
 'workExperience':-1,
 'education':-1,
 'companyType': -1,
 'employmentType': -1,
 'jobWelfareTag': -1,
 'kw': 'BI工程师', #搜索关键词,可以根据你需要爬取的岗位信息进行更换
 'kt': 3,
 'lastUrlQuery': {"p":1,"pageSize":"60","jl":"681","kw":"python","kt":"3"}
 }#参数配置
pages=range(1,31)#爬取1-30页数据
out_f=open('test.csv', 'w', newline='')
writer=csv.writer(out_f)
writer.writerow(['jobName','company','salary','city','jobtype','eduLevel','workingExp'])
for p in pages: #自动翻页
 param['start']=(p-1)*60
 param['lastUrlQuery']['p']=p
 url='https://fe-api.zhaopin.com/c/i/sou?' + urlencode(param)
 GetData(url,writer)
 time.sleep(3)#间隔休眠3秒,防止IP被封
 print(p)
out_f.close() 

经过一番编译调试,代码成功运行。

全部数据爬取完毕,一共1800条,保存在本地CSV文件中。

数据是爬到了,具体我想了解哪些信息呢:各城市的BI岗位需求情况以及薪资水平;薪水随工作经验的涨幅情况,以及有哪些具体的高薪岗。

由此可见,想要分析的角度很多,且看了源数据,还要做不少的数据处理。最简单快速出可视化的方法自然是用BI工具,来对数据做简单清洗加工,并呈现可视化。

BI能应付绝大多数场景的数据分析,尤其擅长多维数据切片,不需要建模;甚至数据清洗环节也能放在前端,通过过滤筛选、新建计算公式等来解决。最后呈现可视化,并可设计数据报告。

这里我用FineBI来做这样一份分析。

FineBI做分析大体是这样的流程:连接/导入数据——数据处理/清洗(过滤、筛选、新增公式列)——探索式分析——数据可视化——出报告。

二、数据清洗加工

1.薪水上下限分割:

将CSV文件数据导入FineBI中(新建数据链接,建立一个分析业务包,然后导入这张excel表)。因为薪水是以xxK-xxk(还有一些类似校招/薪资面议的数据)的形式进行存储的,我这边使用FineBI新增公式列(类似excel函数)将这些字符进行分割:

薪水下限(数值):left( indexofarray ( split (salary,"-") ,1),find( "K",INDEXOFARRAY( split(salary,"-") ,1))-1)

薪水上限(含K字符):right ( indexofarray( split(salary,"-") ,2),len(salary)- find("K",indexofarray(split(salary,"-"),2 ) ) )

薪水上限(数值):left( 薪水上限(文本),find("K",薪水上限(文本))-1 )

这样就得到每个岗位的数值格式的薪水区间了:

2.脏数据清洗:

浏览了一下数据,没有大问题,但是发现里面有一些类似BIM工程师的岗位信息,这些应该都是土木行业的工程师,这边我直接过滤掉即可(不包含“BIM”且不包含“bim”)。

3.岗位平均数据计算

再新增列,平均薪水=(薪水下限+薪水上限)/2,即可得到每个岗位的平均薪水。

4.真实城市截取

由于城市字段存储有的数据为“城市-区域”格式,例如“上海-徐汇区”,为了方便分析每个城市的数据,最后新增列“城市”,截取“-”前面的真实城市数据。

城市:if(find("-",city)>0 , left(city, find("-",city)-1 ),city)

至此,18000多条数据差不多清洗完毕,食材已经全部准备好,下面可以正式开始数据可视化的美食下锅烹饪。

三、数据可视化

数据可视化可以说是很简单了,拖拽要分析的数据字段即可。

但是这里用finebi分析要理解一个思路。常规我们用excel做分析或者说做图表,是先选用钻则图表然后设定系列、数值。这里没有系列和数值的概念,只有横轴和竖轴。拖入什么字段,该字段就以该轴进行扩展,至于图表嘛,finebi会自动判别推荐。

我这边以各城市平均薪水/岗位数量分析为例给大家简单展示FineBI的可视化呈现过程。

1、横轴以“城市”字段扩展,展现两类数据。先是薪水值,拖拽到纵轴,默认对数值类的字段是汇总求和的。点击字段可直接对改字段修改计算、过滤等操作。

此图来自官网,图中数据不是本次分析的数据,仅供参考

2、然后分析每个城市BI岗位的情况。将数据记录数这个指标拖入到纵轴展示。同样的方式,可以修改字段名。这里为了区分两者,将其修改为折线图,并且倒叙展示。

同理,其他图表也是这样的操作,想清楚展现什么样的数据,怎样展现,数据要作何处理。就得心应手了。其他图表就不一一赘述了。

最后,大概花了15分钟,一份完整的智联招聘网站-BI工程师岗位数据分析的可视化报告就制作完成啦~

审美有限,只能做成这样,其实这个FineBI还能做出这样的效果。

四、分析结果

1.目前BI工程师岗位在智联招聘网站的平均薪资为13.46K(痛哭。。。拉低平均薪水的存在),主要薪水区间大概在12-15K(占比27.07%),相关工作需求总数为634个(仅仅为某一天的招聘需求数据)。

2.从城市岗位需求数量分布来看,BI工程师需求主要集中在北京、上海、深圳、广州区域;各城市BI工程师平均薪水方面,去除岗位需求量较少的城市来看,国内排在前面的分别为深圳(14.72K)、上海(14.59K)、北京(14.51)、杭州(12.07K)、成都(11.13K)、广州(10.94K)。

3.从工作年限的平均薪水和岗位需求数量来看,工作5-10年的资深BI工程师的平均薪水可以达到20K以上(朝资深BI工程师方向奋斗!!!1年以下年限的计算出来的平均薪水虽然为19K,但是由于样本量只有3个,所以参考意义不大),其中大部分的工作需求年限为3-5年,平均薪水为14.24K。

4.从学历方面来看,最低学历需求主要以本科/大专为主,本科和大专学历要求的平均薪资分别为12.68K和11.97K(感觉差距并不大,过硬的技术实力可能才是企业最为看重的吧),博士和硕士学历需求很少。

5.看了一些高薪的招聘企业,最高的可以给到30K~40K的薪酬水平,其中主要是互联网、IT类公司为主。

醍醐灌顶,顿时有了奋斗的动力~知识就是财富,继续好好学习去吧,少年!!!

最后,附上本次爬取到的相关岗位明细的CSV数据(私心回复“csv”获取),如果大家也有分析自己岗位未来前景的想法,但是可能不熟悉数据可视化工具的,可以拿这份数据用FineBI练练手。

常有人不太会,使用excel来进行一些数据分析,通过下文的例子,简要说明其过程。

书写此文的目的是宣传excel的基础应用,提高大家的工作效率。

此文为excel使用的基础文章,高手请略过。

更深层次的excel使用技巧可以在工作中碰到时,可以进一步学习。

例子说明:

  1. 获得原始的基础数据

  2. 观察数据的特点,然后进行数据格式化

  3. 导入excel软件,排序,分析

  4. 改名,并存档

例子的说明以及背景说明。

今天在网上,看到一个“2015年中国经济城市百强”的文章,想初步对其进行数据分析,以备后用。

文章出处:http://blog.sina.com.cn/s/blog_53f8060b0102wsrh.html

处理的思路:

  1. 从该链接获得原始的基础数据,目的:看看人均排名,网上没有,自己整一个。——将数据复制到文本文件中,重命名为100.txt(因为若直接复制到excel中,会放到每一行的第一格,还要整理数据,所以先复制到文本文件中)

  2. 观察数据的特点,然后进行数据格式化——把一些符号(如:(,),亿元、等替换成,适当分割数据,形成列数据)

  3. 导入excel软件,排序,分析——导入100.txt到excel软件,进一步整理,补全标题行,补齐数据,并根据需要排序

  4. 改名,并存档——把100.txt另存为excel格式的文件,并修改文件标签名。

详细的操作,见视频。

最终的,按照人均数的部分排名截图(前20名):

说明:

视频是操作流程,由作者本人录制,时长21:30居然。

在查找数据时,用时稍长,但同时也告诉了你去哪里找数据,如何查数据,另外,还有一些有价值的话,喜欢的可以看看。

<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

建议在wifi下观看视频(土豪可以随意),以后会尽量压缩视频的时间长度,或使用截图来说明。

既然录了,传一次视频,看看反响如何,(未录制文件更名的操作)

若喜欢的人多,继续尝试视频,若一般,则会修正。

感谢您的阅读,聪明人可以不用看视频,了解思路即可。

写Excel文件是在做数据分析相关工作时非常常见的一个操作,也经常有同学问起相关的问题。

今天就跟大家详细分享一下,如何通过Pandas来读取Excel文件里的数据,以及如何将DataFrame保存到Excel文件中

官网参数详解:

https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

参数

read_excel函数能够读取的格式包含:xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。支持读取单一sheet或几个sheet。

以下是官方文档中提供的全部参数信息:

pandas.read_excel(
  io,    
  sheet_name=0, 
  header=0, 
  names=None, 
  index_col=None, 
  usecols=None, 
  squeeze=None, 
  dtype=None, 
  engine=None, 
  converters=None, 
  true_values=None, 
  false_values=None, 
  skiprows=None, 
  nrows=None, 
  na_values=None,
  keep_default_na=True, 
  na_filter=True, 
  verbose=False, 
  parse_dates=False, 
  date_parser=None, 
  thousands=None, 
  decimal='.', 
  comment=None, 
  skipfooter=0, 
  convert_float=None, 
  mangle_dupe_cols=True, 
  storage_options=None
)

常用参数的含义:

  • io:文件路径,支持 str, bytes, ExcelFile, xlrd.Book, path object, or file-like object。默认读取第一个sheet的内容。案例:"/desktop/student.xlsx"
  • sheet_name:sheet表名,支持 str, int, list, or None;默认是0,索引号从0开始,表示第一个sheet。案例:sheet_name=1, sheet_name="sheet1",sheet_name=[1,2,"sheet3"]。None 表示引用所有sheet
  • header:表示用第几行作为表头,支持 int, list of int;默认是0,第一行的数据当做表头。header=None表示不使用数据源中的表头,Pandas自动使用0,1,2,3…的自然数作为索引。
  • names:表示自定义表头的名称,此时需要传递数组参数。
  • index_col:指定列属性为行索引列,支持 int, list of int, 默认是None,也就是索引为0,1,2,3等自然数的列用作DataFrame的行标签。如果传入的是列表形式,则行索引会是多层索引
  • usecols:待解析的列,支持 int, str, list-like, or callable ,默认是 None,表示解析全部的列。
  • dtype:指定列属性的字段类型。案例:{‘a’: np.float64, ‘b’: np.int32};默认为None,也就是不改变数据类型。
  • engine:解析引擎;可以接受的参数有"xlrd"、"openpyxl"、"odf"、"pyxlsb",用于使用第三方的库去解析excel文件
    • “xlrd”支持旧式 Excel 文件 (.xls)
    • “openpyxl”支持更新的 Excel 文件格式
    • “odf”支持 OpenDocument 文件格式(.odf、.ods、.odt)
    • “pyxlsb”支持二进制 Excel 文件
  • converters:对指定列进行指定函数的处理,传入参数为列名与函数组成的字典,和usecols参数连用。key 可以是列名或者列的序号,values是函数,可以自定义的函数或者Python的匿名lambda函数
  • skiprows:跳过指定的行(可选参数),类型为:list-like, int, or callable
  • nrows:指定读取的行数,通常用于较大的数据文件中。类型int, 默认是None,读取全部数据
  • na_values:指定列的某些特定值为NaN
  • keep_default_na:是否导入空值,默认是导入,识别为NaN

模拟数据

现在模拟两个数据:Pandas_Excel.xls 和 Pandas_Excel.xlsx

Pandas_Excel.xls 文件中包含两个sheet,第二个数据只比第一个多个index的信息

1、sheet1的内容

image-20220423115151077

2、sheet2的内容

3、Pandas_Excel.xlsx的内容,模拟的完整信息:

import pandas as pd

默认情况

此时文件刚好在当前目录下,读取的时候指定文件名即可,可以看到读取的是第一个sheet

df=pd.read_excel("Pandas-Excel.xls")
df


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数io

填写完整的文件路径作为io的取值。也可以使用相对路径

pd.read_excel(r"/Users/peter/Desktop/pandas/Pandas-Excel.xls")


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数sheet_name

# pd.read_excel("Pandas-Excel.xls", sheet_name=0) # 效果同上

# 直接指定sheet的名字
pd.read_excel("Pandas-Excel.xls", sheet_name="Sheet1") # 效果同上


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

换成读取第二个sheet:名称是Sheet2

pd.read_excel("Pandas-Excel.xls", sheet_name="Sheet2") 


index

name

age

sex

address

date

0

1

张三

23

深圳

2022-04-01

1

2

李四

16

广州

2022-04-02

2

3

小明

26

未知

深圳

2022-04-05

3

4

张飞

28

苏州

2021-09-08

4

5

小苏

20

NaN

2022-06-07

5

6

小王

0

南京

2022-05-09

结果中多了一列index的取值

参数header

# 和默认情况相同

pd.read_excel("Pandas-Excel.xls", header=[0]) 


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

pd.read_excel("Pandas-Excel.xls", header=[1])  # 单个元素

第一行的数据当做列属性:


张三

23

深圳

2022-04-01 00:00:00

0

李四

16

广州

2022-04-02

1

小明

26

未知

深圳

2022-04-05

2

张飞

28

苏州

2021-09-08

3

小苏

20

NaN

2022-06-07

4

小王

0

南京

2022-05-09

传入多个元素会形成多层索引:

pd.read_excel("Pandas-Excel.xls", header=[0,1])   # 多个元素


name

age

sex

address

date


张三

23

深圳

2022-04-01 00:00:00

0

李四

16

广州

2022-04-02

1

小明

26

未知

深圳

2022-04-05

2

张飞

28

苏州

2021-09-08

3

小苏

20

NaN

2022-06-07

4

小王

0

南京

2022-05-09

参数names

# 指定列名称

pd.read_excel("Pandas-Excel.xls", names=["a","b","c","d","e"])   


a

b

c

d

e

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数index_col

# 指定单个元素作为索引
pd.read_excel("Pandas-Excel.xls", index_col=[0]) 


age

sex

address

date

name





张三

23

深圳

2022-04-01

李四

16

广州

2022-04-02

小明

26

未知

深圳

2022-04-05

张飞

28

苏州

2021-09-08

小苏

20

NaN

2022-06-07

小王

0

南京

2022-05-09

# 多个元素
pd.read_excel("Pandas-Excel.xls", index_col=[0,1])   



sex

address

date

name

age




张三

23

深圳

2022-04-01

李四

16

广州

2022-04-02

小明

26

未知

深圳

2022-04-05

张飞

28

苏州

2021-09-08

小苏

20

NaN

2022-06-07

小王

0

南京

2022-05-09

参数usecols

pd.read_excel("Pandas-Excel.xls", usecols=[0])   # 单个字段


name

0

张三

1

李四

2

小明

3

张飞

4

小苏

5

小王

pd.read_excel("Pandas-Excel.xls", usecols=[0,2,4])   # 多个字段


name

sex

date

0

张三

2022-04-01

1

李四

2022-04-02

2

小明

未知

2022-04-05

3

张飞

2021-09-08

4

小苏

2022-06-07

5

小王

2022-05-09

# 直接指定名称
    
pd.read_excel("Pandas-Excel.xls", usecols=["age","sex"])  


age

sex

0

23

1

16

2

26

未知

3

28

4

20

5

0

# 传入匿名函数,字段中包含a,结果sex没有了

pd.read_excel("Pandas-Excel.xls", usecols=lambda x: "a" in x)


name

age

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数dtype

df.dtypes  
name               object
age                 int64
sex                object
address            object
date       datetime64[ns]
dtype: object

从上面的结果中看到age字段,在默认情况下读取的是int64类型:

# 指定数据类型
df1=pd.read_excel("Pandas-Excel.xls", dtype={"age":"float64"})

# 查看字段信息
df1.dtypes
name               object
age               float64  # 修改
sex                object
address            object
date       datetime64[ns]
dtype: object

参数engine

# xls 结尾

pd.read_excel("Pandas-Excel.xls", engine="xlrd")


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

# xlsx 结尾
pd.read_excel("Pandas-Excel.xlsx", engine="openpyxl")


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

杭州

2022-06-07

5

小王

25

南京

2022-05-09

参数converters

pd.read_excel("Pandas-Excel.xlsx")  # 默认操作


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

杭州

2022-06-07

5

小王

25

南京

2022-05-09

pd.read_excel("Pandas-Excel.xlsx", 
              usecols=[1,3],  # 1-age  3-address 数值为原索引号
              converters={0:lambda x: x+5,  # 0代表上面[1,3]中的索引号
                          1:lambda x: x + "市"
                         })


age

address

0

28

深圳市

1

21

广州市

2

31

深圳市

3

33

苏州市

4

25

杭州市

5

30

南京市

参数skiprows

pd.read_excel("Pandas-Excel.xls")   # 默认情况


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

把张三和李四所在的行直接跳过:

pd.read_excel("Pandas-Excel.xls", skiprows=2)


李四

16

广州

2022-04-02 00:00:00

0

小明

26

未知

深圳

2022-04-05

1

张飞

28

苏州

2021-09-08

2

小苏

20

NaN

2022-06-07

3

小王

0

南京

2022-05-09

# 跳过偶数行

pd.read_excel("Pandas-Excel.xls", skiprows=lambda x: x%2==0)


张三

23

深圳

2022-04-01 00:00:00

0

小明

26

未知

深圳

2022-04-05

1

小苏

20

NaN

2022-06-07

参数nrows

# 指定读取的行数

pd.read_excel("Pandas-Excel.xls", nrows=2)


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

参数na_values

pd.read_excel("Pandas-Excel.xls")  # 默认


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

pd.read_excel("Pandas-Excel.xls", 
              na_values={"sex":"未知"})

sex字段中的未知显示成了NaN:


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

NaN

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数keep_default_na

pd.read_excel("Pandas-Excel.xls")  # 默认keep_default_na=True


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

pd.read_excel("Pandas-Excel.xls", keep_default_na=False)


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20


2022-06-07

5

小王

0

南京

2022-05-09

输出到excel文件

简单模拟一份数据:

df2=pd.DataFrame({"num1":[1,2,3],
                   "num2":[4,5,6],
                   "num3":[7,8,9]})
df2


num1

num2

num3

0

1

4

7

1

2

5

8

2

3

6

9

df2.to_excel("newdata_1.xlsx")

效果如下:

df2.to_excel("newdata_2.xlsx",index=False)

不会带上索引号

以上就是对 Pandas 读写 Excel 相关方法及参数的详细解读。希望对你有所帮助。建议收藏一下以备不时之需。

作者:Peter

来源:尤而小屋