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

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数据分析的内容哟!!!!!


http://www.kler.cn/a/582618.html

相关文章:

  • 【贪心算法4】
  • 人工智能在医疗领域的应用:技术革新与未来展望
  • 【解决报错】:detected dubious ownership in repository at ‘D:/idea_code/xxx‘问题
  • 【2步解决】phpstudy开机自启(自动启动phpstudy、mysql、nignx或apache、自动打开网址)
  • 【蓝桥杯python研究生组备赛】003 贪心
  • Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)
  • 动态规划-第2篇
  • JAVA SE 4.Java各版本特性
  • 手机端安装包签名原理
  • C++中数组作为函数参数传递,和使用指针作为函数参数有什么区别?
  • Webpack 打包详细教程
  • 推理模型对SQL理解能力的评测:DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet
  • ELK traceId实现跨服务日志追踪
  • 传球游戏(蓝桥云课)
  • 附下载 | 2024 OWASP Top 10 基础设施安全风险.pdf
  • 【Godot4.0】EasyClock时钟组件
  • upload-labs-master通关攻略(9~12)
  • CentOS 7.9安装OpenStack
  • Python和Docker实现AWS ECR/ECS上全自动容器化部署网站前端
  • Sass (Scss) 与 Less 的区别与选择