dateframe取某列数据_pandas的DataFrame对象抽取“整列”或者“整行”数据

本文介绍了Pandas DataFrame中选取数据的各种方法,包括使用数据框的列标签、行索引、`.loc`和`.iloc`方法。强调了直接通过列名取列、行索引取行、`.`操作符取列以及使用`.loc`和`.iloc`的正确用法,并给出了相应的示例。
摘要由CSDN通过智能技术生成

先给出能取行和列的几种常用方式:

data[ 列名 ]:取单列或多列,不能用连续方式取,也不能用于取行。

data[ i:j ]:用起始行下标(i)和终止行下标(j)取单行或者连续多行,不能用于列的选取。

data.列名:只用于取单列,不能用于行。

data.loc[行名,列名]:用对象的.loc[]方法实现各种取数据方式。

data.iloc[行下标,列下标]:用对象的.iloc[]方法实现各种取数据方式。

……待添加……

首先生成一个DataFrame对象:

import pandas as pd

score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]

name = ['Xm','小红','小李']

course = ['语文','数学','英语','政治']

mydata = pd.DataFrame(data=score,columns=name,index=course)#指定行列名

print(mydata)

Xm 小红 小李

语文 34 67 87

数学 68 98 58

英语 75 73 86

政治 94 59 81

1、直接用列标签名抽取多列数据

语法:data[ 列名 ] √,data[ 行名 ]×

mydata['小红'] #直接选择'小红'列,注意输出是一个Series对象,而不是DataFrame对象

语文 67

数学 98

英语 73

政治 59 #Series对象

mydata[['小红']] #直接选择'小红'列,但加了[],此时输出的是DataFrame对象

小红

语文 67

数学 98

英语 73

政治 59 #DataFrame对象

mydata[['小红','小李'] #选择两列,此时必须用[]将两列括起来,否则报错

小红 小李

语文 67 87

数学 98 58

英语 73 86

政治 59 81

mydata['小红','小李'] #选择两列,没有加[],报错×××

mydata[['Xm':'小李']] #期望利用['Xm':'小李']连续选择多列,报错×××

mydata['Xm':'小李'] #期望利用'Xm':'小李'连续选择多列,报错×××

mydata['语文'] #期望通过选择‘语文’来得到语文对应的行,报错×××

小结:

(1)用数据直接加名称的方式只能获取完整的列(data[ 列名 ] √),不能企图用行名来获取一整行(data[ 行名 ] ×)。

(2)用data[ 列名 ] 方式只能明确指定待选取的列名,不能用连续取值方式。

2、用行所在矩阵索引抽取一个行或者连续多行数据

语法:data[ 行索引 ]√,data[ 列索引 ]×

mydata[0:1] #通过0:1选择了第0行

Xm 小红 小李

语文 34 67 87

mydata[0:3] #通过0:3选择了第0,1,2三行

Xm 小红 小李

语文 34 67 87

数学 68 98 58

英语 75 73 86

mydata[0] #想通过只用0一个参数得到第0行,报错×××

小节:

(1)用数据直接加矩阵索引的方式只能获取完整的行(data[ 行索引 ]√),不能企图用列索引来获取一整列(data[ 列索引 ]×)。

(2)用data[ 列索引 ] 的方式只能取得单行,或者连续多行,而没法跳跃式指定抽取。

3、用数据的“·”方式获取某一列数据

语法:data.列名√,data.行名×。

mydata.小红 #通过.小红选择了小红列,注意输出的是Series对象

语文 67

数学 98

英语 73

政治 59

mydata.语文 #企图用同样的方式输出语文这一行,报错×××

小结:

通过“data.列名”的方式只能取单独一列,无法连续取,用同样的方式取单独一行。

4、通过对象的.lco[,]和.iloc[,]两种方法取单行、多行、单列、多列、混合数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值