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