pandas抽取行列数据的几种方法
本文详细介绍在pandas中抽取DataFrame行列数据的多种方法。涵盖直接使用列名、矩阵索引切片以及.loc和.iloc的高级用法。重点解析.loc基于标签和.iloc基于整数位置的区别,并说明省略参数时的默认行为及逗号分隔的重要性,帮助开发者准确获取所需数据。
获取数据框中行和列的常用方式主要有以下几种:
data[列名]:用于提取单列或多列数据,但无法使用连续切片方式选取行,也不能直接用于取行操作。 data.列名:仅适用于提取单列数据,不支持行提取。 data[i:j]:通过指定起始行下标(i)和终止行下标(j)来提取单行或连续多行数据,此方法不适用于列的选择。 data.loc[行名,列名]:利用DataFrame对象的.loc[]方法实现灵活的数据提取。 data.iloc[行下标,列下标]:利用DataFrame对象的.iloc[]方法实现基于位置的数据提取。
首先构建一个DataFrame对象用于演示:
import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小红','小李']
course = ['语文','数学','英语','政治']
mydata = pd.DataFrame(data=score,columns=name,index=course)#指定行列名
print(mydata)
小新 小红 小李 语文 34 67 87 数学 68 98 58 英语 75 73 86 政治 94 59 81
1. 直接使用列名提取单列或多列 – data[列名]
print(mydata['小红']) # 输出是一个Series对象,而不是DataFrame对象
语文 67
数学 98
英语 73
政治 59
print(mydata[['小红']]) # 加了[],此时输出的是DataFrame对象
小红
语文 67
数学 98
英语 73
政治 59
print(mydata[['小红','小李']]) #选择两列,此时必须用[]将两列括起来
小红 小李
语文 67 87
数学 98 58
英语 73 86
政治 59 81
2. 利用行所在的矩阵索引提取单行或连续多行数据
print(mydata[0:1]) #通过0:1选择了第0行
小新 小红 小李
语文 34 67 87
mydata[0:3] #通过0:3选择了第0,1,2三行
小新 小红 小李
语文 34 67 87
数学 68 98 58
英语 75 73 86
3. 使用数据对象的“.”属性访问方式获取特定列数据
print(mydata.小红) #通过.小红选择了小红列,注意输出的是Series对象
语文 67
数学 98
英语 73
政治 59
4. pandas中利用DataFrame对象的.loc[,]和.iloc[,]方法提取数据
示例演示:
import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小红','小李']
course = ['语文','数学','英语','政治']
mydata1 = pd.DataFrame(data=score,columns=name,index=course) # 指定行名(index)和列名(columns)
print(mydata1)
mydata2 = pd.DataFrame(score) # 不指定行列名,默认使用0,1,2……
print(mydata2)
小明 小红 小李 语文 34 67 87 数学 68 98 58 英语 75 73 86 政治 94 59 81 0 1 2 0 34 67 87 1 68 98 58 2 75 73 86 3 94 59 81
DataFrame对象的.loc[]和.iloc[]方法均可用于数据提取,两者的主要区别在于:
- .loc[]:以列名和行名作为参数进行索引。
- .iloc[]:以二维矩阵的位置指标(即0,1,2……)作为参数进行索引。
.loc[]语法说明:
该方法接收两个输入参数,第一个参数指定行名,第二个参数指定列名。若仅传入一个参数,则默认视为行名(即提取整行数据),此时所有列均被选中。
.iloc[]语法说明:
该方法接收两个输入参数,第一个参数指定行位置,第二个参数指定列位置。若仅传入一个参数,则默认视为行位置(即提取整行数据),此时所有列均被选中。
总结要点:
当需要选中所有行的某几列时,行参数可以省略,但必须明确指定列参数,此时列参数前需添加“,:”,形式如.loc[:,列参数]或.iloc[:,列参数]。
这两种方法在仅指定一个输入参数时,均默认与“行”相关,而“列”则全部被选中。若需同时指定行和列,中间必须使用“逗号,”隔开,这一点至关重要,否则会导致错误。
两个方法均接受两个参数,第一个参数为“行标签”或“矩阵行号”,第二个参数为“列标签”或“矩阵列号”。
相关学习链接:
Panadas中利用DataFrame对象的.loc[,]、.iloc[,]方法抽取数据 pandas的DataFrame对象抽取“整列”或者“整行”数据
至此,关于pandas抽取行列数据的几种方法介绍完毕。如需了解更多pandas行列数据提取相关内容,建议搜索本站过往文章或继续浏览后续相关文章。感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









