结果如下:

文章插图
3. Excel数据的获取知道怎么读取excel文件中的数据后,接下来我们就要学着如何灵活获取到excel表中任意位置的数据了 。
这里我一共提供了5种需要掌握的数据获取方式,分别是 “访问一列或多列” ,“访问一行或多行” ,“访问单元格中某个值” ,“访问多行多列” 。
① 什么是“位置索引”和标签索引

文章插图
在讲述如何取数之前,我们首先需要理解“位置索引”和“标签索引”这两个概念 。
每个表的行索引就是一个“标签索引”,而标识每一行位置的数字就是 “位置索引”,如图所示 。
在pandas中,标签索引使用的是loc方法,位置索引用的是iloc方法 。接下来就基于图中这张表,来带着大家来学习如何 “取数” 。
首先,我们需要先读取这张表中的数据 。
df = pd.read_excel("readexcel.xlsx",sheet_name="地区")df结果如下:
文章插图
② 访问一列或多列“访问一列或多列”,相对来说比较容易,直接采用中括号“标签数组”的方式,就可以获取到一列或多列 。
方法1:访问一列
df["武汉"]方法2:访问多列df[["武汉","广水"]]③ 访问一行或多行“访问一行或多行”,方法就比较多了,因此特别容易出错,因此需要特别注意 。方法1:访问一行
# 位置索引df.iloc[0]# 标签索引df.loc["地区1"]方法2:访问多行# 位置索引df.iloc[[0,1,3]]# 标签索引df.loc[["地区1","地区2","地区4"]]④ 访问单元格中某个值“访问单元格中某个值”,也有很多种方式,既可以使用“位置索引”,也可以使用“标签索引” 。# 使用位置索引df.iloc[2,1]# 使用标签索引df.loc["地区3","天门"]⑤ 访问多行多列“访问多行多列”,方法就更多了 。我一共为大家总结了5种方法 。第一,iloc+切片;第二种,loc+标签数组;第三种,iloc+切片+位置数组;第四种,loc+切片+标签数组 。方法1:iloc+切片
# 选取前3行数据的所有列df.iloc[:3,:]方法2:loc+标签数组# 选取地区1和地区3这两行的武汉、孝感、广水列df.loc[["地区1","地区3"],['武汉','孝感','广水']]方法3:iloc+切片+位置数组# 选取所有行的第2和第5列数据df.iloc[:,[1,4]]方法4:loc+切片+标签数组# 选取地区1和地区2这两行的武汉和广水列df.loc[:"地区2":,["武汉","广水"]]4. Excel数据的拼接在进行多张表合并的时候,我们需要将多张表的数据,进行纵向(上下)拼接 。在pandas中,直接使用pd.concat()函数,就可以完成表的纵向合并 。关于pd.concat()函数,用法其实很简单,里面有一个参数ignore_index需要我们注意,ignore_index=True,表示会忽略原始索引,生成一组新的索引 。
如果不使用ignore_index参数
df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2")pd.concat([df1,df2],ignore_index=True)结果如下:
文章插图
从上表可以看到,里面有两条记录是完全重复的,我们直接可以再调用drop_duplicates()函数,实现去重操作 。
df1 = pd.read_excel("concat.xlsx",sheet_name="Sheet1")df2 = pd.read_excel("concat.xlsx",sheet_name="Sheet2")pd.concat([df1,df2],ignore_index=True).drop_duplicates()结果如下:
文章插图
5. Excel数据写出当我们将某个Excel文件中的表,进行读取、数据整理等一系列操作后,就需要将处理好的数据,导出到本地 。其实Pandas库中可以导出的数据格式有很多种,我们同样以导出xlsx文件为例,进行讲述 。
推荐阅读
- 一文搞懂Go通道
- 一文搞懂GoLang定时器实现原理
- 一文看懂USB4
- MySQL高级进阶:关于InnoDB存储结构,一文深入分析讲解
- 一文看懂技术中台、研发中台、移动中台建设全攻略
- 一文弄清Python网络爬虫解析库!内含多个实例讲解
- 一文看完CDN的发展历程
- 一文带你轻松搞懂事务隔离级别
- Pandas最详细教程来了
- 一文读懂微服务监控之分布式追踪
