轻松学Python数据分析2-Excel读取和生成

阅读本文大约需要 5 分钟

  • 主要内容:Excel 办公自动化和数据分析
  • 适用人群:办公室职员 / Python 初学者 / 有志从事数据分析工作的人员
  • 准备内容:Anaconda-Spyder,Pandas库

不会安装库的可以参考如下教程:

Anaconda如何安装Python库

摘 要

网上、书上已经有很多关于数据分析的教程,但是OF抱着把数据分析讲得最完整最简单最实用的使命感,让大家真正掌握Pandas,并将其运用得炉火纯青。

1、Pandas的数据结构,即基础原理(学习下会对后面的学习事半功倍)

轻松学Python数据分析1-最简单实用的Pandas讲解

2、数据读取和生成

3、数据处理(数据的清洗等)

4、数据可视化图表

5、项目实战

今天开始我们要介绍实际的应用了,先来介绍下第2部分:怎么读取Excel的数据和生成Excel。


读取Excel

  • 读取Excel内容

若读取的路径与python在一个文件夹下,直接写文件名即可,若不在一个文件夹下,需要写出完整路径。

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx') #文件路径
print(df)


  • 读取前几行内容

head( n ) 方法用于读取前面的 n 行,如果不填参数 n ,默认返回 5 行。

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx') #文件路径
print(df.head(2))

运行结果:

    单号        数量     时间差     创建时间           审核日期     大类代码 大类名称 
0  SD190721004   5   21.697014 2019-10-27 16:45:53 2019-10-28     1   效果
1  SD191016007   6  115.231053 2019-10-27 15:21:25 2019-10-28    2   其它     

读取后几行内容:tail( n ) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN。

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx') #文件路径
print(df.tail(3))

运行结果:

单号    数量        时间差                创建时间       审核日期  大类代码 大类名称
19  SD191025004  25.0  52.976748 2021-04-07 00:00:00 2019-10-28   5.0   尺寸
20  SD191022004  27.0  52.976748 2019-10-27 14:52:53 2019-12-02   5.0   尺寸
21  SD191022005   NaN        NaN                 NaT        NaT                  NaN    NaN


  • 读取Excel基本信息

info() 方法返回表格的一些基本信息。

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx') #文件路径
print(df.info())

运行结果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 22 entries, 0 to 21
Data columns (total 7 columns):
单号      22 non-null object
数量      21 non-null float64
时间差     21 non-null float64
创建时间    21 non-null datetime64[ns]
审核日期    21 non-null datetime64[ns]
大类代码    21 non-null float64
大类名称    21 non-null object
dtypes: datetime64[ns](2), float64(3), object(2)
memory usage: 1.3+ KB
None

从这里,我们就可以看出这个Excel的行列数,哪些列有空值等。

  • 读取其他Sheet页(read_excel函数)

比如我们想读取的不是默认的“Sheet1”,而是“Sheet2”,那么我们需要这样写:

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx',sheet_name='Sheet2') #文件路径
print(df)

运行结果:

 No.  Code         Name  Age
0    1  1001       Office   25
1    2  1002        touch   23
2    3  1003  Officetouch   18

已经有基础的读者,可以仔细阅读以下内容,我们可以对Python有更深入的认知,知其然知其所以然。我们来了解下read_excel函数的常用参数:

虽然我们可以网上搜索read_excel函数,但是每次都去网上搜索,总归是麻烦+一知半解,所以我们借此机会正好了解为什么我们引用Pandas能实现这么多功能。

1)在自己的程序上,按住Ctrl+点击pandas,进入到Pandas的程序,然后我们Ctrl+F搜索read_excel

2)按住Ctrl+点击read_excel,我们能看到read_excel函数的内容

到这里,我们就能知道我们想使用的参数名如"sheet_name"、"index_col"等。


  • 读取指定条件的数据

在Pandas的基础原理篇,我们已经讲过想要读取指定行的数据可以用loc函数,今天我们再稍微介绍下。比如我们需要只显示年龄大于20的数据:

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx',sheet_name='Sheet2') #文件路径
print(df.loc[df['Age']>20])

运行结果:

 No.  Code    Name  Age
0    1  1001  Office   25
1    2  1002   touch   23

生成Excel

今天,我们再简单地讲解下如何生成Excel,比如我们对上图数据经过处理,需要把Age>20的数据导出Excel。

import pandas as pd
df = pd.read_excel('./data/test_insert.xlsx',sheet_name='Sheet2') #文件路径
df1 = df.loc[df['Age']>20]
df1.to_excel('./data/test1.xlsx',sheet_name="sheet3")

运行后,我们可以去指定的路径下找到test1.xlsx,是不是很简单?

结 语

今天,OF介绍了Excel读取和生成的相关知识,在第3篇关于数据处理的文章中我们将补充更多的知识点。OF主要为大家介绍最完整、最简单、最实用的方法来学习办公自动化和数据分析,用Pandas对Excel的数据处理已经足够了。像其他python库如openpyxl, xlwings, xlsxwriter,有兴趣大家可以自行学习。下几期的内容会更有实战性,尽情期待!

3、Pandas的数据处理(数据的清洗等)

4、Pandas的数据可视化图表

5、Pandas的项目实战


  • 若有读者对选材和内容有任何建议,请随时评论或私信我,只要是好的建议,OF一定不会辜负大家,会有惊喜送上。
  • 若学员对知识点有疑问或想学习更有用的知识,也请随时评论或私信我,请相信OF的诚意,一定会努力帮助大家发现-解决问题,提高自身的核心竞争力。


举报
评论 0