当前位置: 首页 > news >正文

python数据分析--pandas读取数据--按行和列提取数据

pandas读取数据–按照行和列来提取数据

前言

之前我们学习了如何通过pandas读取数据,但是很多时候我们还需要根据不同的情况,按照行和列来读取数据,有时候我们需要提取一个表格的某几行某几列,或者在读取时只读取前几行,或者从某一行开始往下面读取,这个又应该怎么做呢?
今天就让我们一起来学习这些东西吧。

一、按行读取

在我的d盘python数据分析这个文件夹里面,有这些表格
(这里需要声明一下,这些表格是从我学习python数据分析时,所看过的一本书里面获得的数据源,在这里我非常感谢这本书和这本书的作者,他们给了我前进的方向,我相信如果这本书的作者能看到他所作的书里面的数据源,可以帮到大家,他一定也会很欣慰。)
在这里插入图片描述
在名为“上海”的这个表格里,有这样五个表
在这里插入图片描述
下面我就通过这五个表来进行讲解。

1.标题行

在这里插入图片描述
我们先来复习一下昨天所学的知识,关于标题行。
首先我们分析这个表格的路径:d盘 python数据分析文件夹 上海.xlsx
那么我们怎么读取这些数据呢

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name)
print(df1)

我们在pycharm中输入上面代码,运行后结果如下:

在这里插入图片描述
这里我们错误地将第一行当做了标题,那么怎么改呢?这个问题我们上一节已经讲过,小伙伴们可以看一下我上一篇文章。》》点击这里进行查看

我们通过header这个参数来控制读取的数据
代码修改如下:

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,header=None)
print(df1)

点击运行后结果如下:
在这里插入图片描述

2.跳过行

我们再来看一下第二个表格的内容和数据
在这里插入图片描述
我们通过观察可以发现,这个表的数据是从第三行开始的,如果我们直接读取的话,会发生什么呢?

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=1)
print(df1)

输入上述代码后点击运行
在这里插入图片描述
我们会发现读取的结果没有标题,而且中间是空的
那么怎么修改呢,很简单,设置参数

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=1,skiprows=[0,1])
print(df1)

上述代码我们加了一个skiprows=[0,1],意思就是跳过第一行和第二行,我们之前讲过,在计算机中,数据计数是从0开始,0,1,2,3这样主将增大。所以中括号里面的参数是0,1
我们点击运行查看结果
在这里插入图片描述
可以看到这里已经成功读取了,当然,我们同样可以将header这个参数设置为2,也就是将第三行当做标题,来实现正确地读取,代码修改后如下:

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=1,header=2)
print(df1)

运行上述代码,结果和上面是一样的,可以成功读取,大家可以试一下。

3.多行标题

我们先来看一下第三个表格的内容
在这里插入图片描述

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=2)
print(df1)

我们运行上面代码后,结果如下:
在这里插入图片描述
我们可以看到,在表格中其实第一行和第二行都是标题,但是读取以后,他会默认只把第一行当做标题,对于这个问题,我们可以通过修改heade来解决
代码修改如下:

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=2,header=[0,1])
print(df1)

点击运行后,结果如下
在这里插入图片描述
可以看到通过设置第一行和第二行都是标题,我们成功读取了数据。

4.保留行

在这里插入图片描述
我们先看看这个表,只有第三行,第四行,第六行和第八行有数据,其它行都是空白,这个怎么读呢
如果正常读的话,我们看下效果,可以输入以下代码:

在这里插入图片描述

这里我们的数据是从第三行开始,并且第五行和第七行都是空白,这个怎么办呢?

import pandas as pd
file_name=r"D:\python数据分析\上海.xlsx"
df1=pd.read_excel(file_name,sheet_name=3,skiprows=[0,1,4,6])
print(df1)

很简单,用我们上面的skiprows参数就可以
读取结果如下
在这里插入图片描述

二、按列读取

1.通过参数

同样是刚才的python数据分析这个文件夹,我们看一下华东这个表格
在这里插入图片描述
我们输入下面代码来读取一下数据

import pandas as pd
file_name=r"D:\python数据分析\华东.xlsx"
df1=pd.read_excel(file_name)
print(df1)

运行结果如下:
在这里插入图片描述
这里我们读取了全部列,那么如果只想读取片区和包装方式这两列,怎么办呢,
很简单,使用usecols参数就行

import pandas as pd
file_name=r"D:\python数据分析\华东.xlsx"
df1=pd.read_excel(file_name,usecols=["片区","包装方式"])
print(df1)

运行结果如下;
在这里插入图片描述
我们之前在学习选择读取的表格时,用到了sheet_name这个参数,我们使用列表加数字进行读取,比如想读取第一个和第三个表格就输入;sheetname=[0,2]
为什么是0,2而不是1,3,这个前面讲过,计算机从0开始计数,我们眼中从左到右的第一个表格,是计算机眼中的第0个表格,那么这里也可以采用这种方法
比如我们想读取“片区”和“包装方式”这两列数据,在计算机眼中就是读取第0列和第4列数据
我们输入下面的代码

import pandas as pd
file_name=r"D:\python数据分析\华东.xlsx"
df1=pd.read_excel(file_name,usecols=[0,4])
print(df1)

运行后结果如下;
在这里插入图片描述
还有没有其它方法呢,有的有的,兄弟有的
在excel里面,我们可以看到数据是从第A列往后,依次是B列,C列
那么可不可以通过英文字母来表示读取的列呢,可以看到,片区和包装方式分别是第A列和第E列
我们修改代码如下:

import pandas as pd
file_name=r"D:\python数据分析\华东.xlsx"
df1=pd.read_excel(file_name,usecols="A,E")
print(df1)

最后发现结果如下
在这里插入图片描述
以上三种方法都可以实现对特定列的读取,具体用哪一种可以看自己的喜好。

2.预先设置

我们可以用一个列表或者元组将要读取的列给保存,然后在读取的时候直接用这个列表或者元组就行

import pandas as pd
list1=["片区","包装方式"]
file_name=r"D:\python数据分析\华东.xlsx"
df1=pd.read_excel(file_name,usecols=list1)
print(df1)

在上面的代码中,我们用list1这个列表来保存要读取的列名,然后将它传给usecols这个参数
最后运行代码,结果如下
在这里插入图片描述
我们还可以通过元组来保存列名,小伙伴们可以自己试一试哟。

总结

今天我们学习了如何通过标题行来灵活地读取数据,还学会了使用四种不同的方式来读取我们需要的列,收获满满哟。
感兴趣的朋友可以点个关注和订阅,我会不定时更新新的python数据分析的内容哟!!!!!

相关文章:

  • 50个经典的python库
  • Python函数的递归调用
  • Flutter_学习记录_video_player、chewie 播放视频
  • Github 2025-03-12 C开源项目日报Top5
  • [洛谷]P1123 取数游戏
  • 文献分享: 对ColBERT段落多向量的剪枝——基于学习的方法
  • 设计模式Python版 模板方法模式(上)
  • Linux:基本指令与内涵理解
  • 初阶数据结构--复杂度
  • 前端发布缓存导致白屏解决方案
  • 解决webdriver和Chrome不匹配的办法
  • 请简述一下String、StringBuffer和“equals”与“==”、“hashCode”的区别和使用场景
  • 解锁数据结构分享图:高效知识传播的关键
  • Kubernetes教程(七)了解集群、标签、Pod和Deployment
  • linux docker 安装dify本地运行,及部署后运行出现502问题
  • Hot 3D 人体姿态估计 HPE Demo复现过程
  • [算法] 判断是否为字符串重排(simple, 面试)
  • 以 ArcGIS Pro 为笔,绘就水墨地图画卷
  • 【Go学习】04-1-Gin框架-路由请求响应参数
  • JVM内存结构笔记03-方法区
  • 德国旅游胜地发生爆炸事故,11人受伤
  • 魔都眼|石库门里看车展,五一来张园体验城市“漫时光”
  • 4月一二线城市新房价格环比上涨,沪杭涨幅居百城前列
  • 五一假期,这些短剧值得一刷
  • 首开股份:一季度净利润亏损约10.79亿元,签约金额63.9亿元
  • 游客曝九寨沟打网约车被出租车围堵,景区回应:当地无合规网约车