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

### 回答1: Python可以使用不同的方法提取指定数据。 1. 使用pandas库 可以使用pandas库中的DataFrame数据结构来处理表格数据,并使用iloc函数来定位指定数据。 例如,以下代码将读取一个名为data.csv的CSV文件,并选择第二第四数据: import pandas as pd data = pd.read_csv('data.csv') df = data.iloc[:, [1, 3]] print(df) 2. 使用numpy库 也可以使用numpy库中的数组数据结构来处理表格数据,并使用索引来定位指定数据。 例如,以下代码将读取一个名为data.csv的CSV文件,并选择第二第四数据: import numpy as np data = np.loadtxt('data.csv', delimiter=',') arr = data[[1], [3]] print(arr) 3. 直接读取文件 如果数据以文本文件形式存储,则可以使用Python内置的文件I/O函数来读取文件并选择指定的。例如,以下代码将读取一个名为data.txt的文本文件并选择第二第四数据: with open('data.txt', 'r') as f: lines = f.readlines() data = [[float(x) for x in line.strip().split()] for line in lines] arr = [row[3] for row in data[1:2]] print(arr) 以上是三种常用的方法来提取指定数据,具体使用方法可以根据实际情况选择。 ### 回答2: 在Python中,提取指定数据可以使用numpy库或者pandas库中的方法来实现。这里分别介绍两种方法: 1. 使用numpy库提取指定数据 使用numpy库可以通过切片操作完成对指定数据提取。假设存在一个二维数组data,我们想要提取第2至第5、第3至第6数据,则可以使用以下代码: ```python import numpy as np # 创建一个4x6的二维数组 data = np.arange(24).reshape((4, 6)) print(data) # 提取第2至第5、第3至第6数据 sub_data = data[1:5, 2:6] print(sub_data) ``` 输出结果为: ``` [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23]] [[ 8 9 10 11] [14 15 16 17] [20 21 22 23]] ``` 2. 使用pandas提取指定数据 使用pandas库可以通过loc方法或者iloc方法完成对指定数据提取。假设存在一个DataFrame df,我们想要提取第2至第5、第3至第6数据,则可以使用以下代码: ```python import pandas as pd # 创建一个6x8的DataFrame df = pd.DataFrame({'A': range(1, 7), 'B': pd.Timestamp('20210601'), 'C': pd.Series(1, index=list(range(6)), dtype='float32'), 'D': np.array([3] * 6, dtype='int32'), 'E': pd.Categorical(['test', 'train', 'test', 'train', 'test', 'train']), 'F': 'foo' }) print(df) # 提取第2至第5、第3至第6数据 sub_df = df.iloc[1:5, 2:6] print(sub_df) ``` 输出结果为: ``` A B C D E F 0 1 2021-06-01 1.0 3 test foo 1 2 2021-06-01 1.0 3 train foo 2 3 2021-06-01 1.0 3 test foo 3 4 2021-06-01 1.0 3 train foo 4 5 2021-06-01 1.0 3 test foo 5 6 2021-06-01 1.0 3 train foo C D E F 1 1.0 3 train foo 2 1.0 3 test foo 3 1.0 3 train foo 4 1.0 3 test foo ``` ### 回答3: Python是一门强大的编程语言,在数据处理方面也备受关注。在实际的数据处理过程中,我们常常需要提取指定数据,这也是Python数据处理中的一个重要操作。下面我将简要介绍如何使用Python提取指定数据。 1.提取指定数据 我们可以使用Python中的pandas库来读取处理数据。在pandas中,可以使用iloc方法来提取指定数据。其中,iloc方法主要用于通过号索引数据,它的语法为: DataFrame.iloc[号,号] 其中,号都是从0开始的整数,可以使用逗号分隔多个号。例如,提取第1第2的数值数据可以使用以下代码: import pandas as pd data = pd.read_excel('data.xlsx') #读取数据 rows = [0,1] #指定号 data_rows = data.iloc[rows,:] #提取指定数据 print(data_rows) 上述代码中,我们首先读取了一个Excel表格,然后定义了要提取号,最后使用iloc方法提取了这些数据,并打印输出结果。 2.提取指定数据pandas中,可以使用loc方法来提取指定数据。其中,loc方法主要用于通过索引来选取数据,它的语法为: DataFrame.loc[索引,名] 其中,索引可以是数字或者标签,名是表格中每一的名称,可以使用逗号分隔多个名。例如,提取Excel表格中的AC可以使用以下代码: import pandas as pd data = pd.read_excel('data.xlsx') #读取数据 columns = ['A','C'] #指定名 data_columns = data.loc[:,columns] #提取指定数据 print(data_columns) 上述代码中,我们首先读取了一个Excel表格,然后定义了要提取名,最后使用loc方法提取了这些数据,并打印输出结果。 综上所述,通过pandas库中的ilocloc方法,我们可以方便地提取指定数据,实现数据处理的多种需求。当然,在实际的数据处理过程中,还需要根据具体情况灵活运用,以达到最好的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值