pandas—数据选择的常见用法

使用pandas时,经常会对某行、某列、满足条件的数据进行统计计算。
以下总结了pandas数据选择的常见方法,包括loc、iloc等方法的使用。
首先读取数据:

df = pd.read_excel('zpxx.xlsx')

1、元素、索引、列名获取

可以利用DataFrame的基础属性values、index、columns,分别获取元素、索引、列名

print('获取元素:\n', df.values)  # 返回二维列表

在这里插入图片描述

print('获取索引:\n', df.index)  # 返回行的索引,可使用list转换为列表格式

在这里插入图片描述

print('获取列名:\n', df.columns)  # 返回字段名,可使用list转换为列表格式

在这里插入图片描述
2、行的选取

(1)head()和tail()方法

DataFrame提供的head()和tail()方法,可以实现多行数据的获取,从开头或末尾获取连续数据,默认为是前或后5行数据;可以在方法中输入访问行数,实现目标行数的查看。
默认情况下:

print('前5行(默认)数据:\n', df.head())
print('后5行(默认)数据:\n', df.tail())

在这里插入图片描述
指定查看行数:

print('指定查看前3行数据:\n', df.head(3))

在这里插入图片描述
指定查看某个字段的目标行数:

print('指定查看【关键词】字段的前3行数据:\n', df['关键词'].head(3))

在这里插入图片描述
(2)切片方式

格式:df[m:n],m、n代表指定的行数,左闭右开

print('查看第2-第6行数据:\n', df[1:6])

在这里插入图片描述
3、列的选取
(1)以字典访问某一个key的值的方式
选取某一列:df[‘列名’]
选取多列:df[[‘列名1’,’列名2’,’列名3’]]

选取某一列:

print('选取【采集时间】列:\n', df['采集时间'])

在这里插入图片描述
选取多列:

print('选取多列:\n', df[['关键词', '采集时间']])

在这里插入图片描述

(2)访问属性的方式访问
用法:df.列名
最好不用,字段名与内部固定方法名之间容易引起混乱。

print('选取【采集时间】列:\n', df.采集时间)

在这里插入图片描述

4、loc和iloc行列选择
(1)loc用法
语法:df.loc[行索引名称或条件,列索引名称]
loc是针对DataFrame索引名称的切片方式,必须传入的是索引名称,否则不能执行;且行索引不能为空,否则将失去意义。
第一种用法,行列索引同时都有:

print('选取【采集时间】整列数据:\n', df.loc[:, '采集时间'])  # loc用法

在这里插入图片描述

print('选取前5行的【采集时间】:\n', df.loc[:4, '采集时间'])  # loc用法

在这里插入图片描述
注:如果行索引是一个区间,则前后都为闭区间。上面“:4”代表的是行索引[0:4],都为闭区间。

print('选取第3行的【采集时间】:\n', df.loc[2, '采集时间'])  # loc用法

在这里插入图片描述
第二种,只有行标签:
注:如果行索引是一个区间,则前后都为闭区间。

print('选取第一行', df.loc[0])

在这里插入图片描述

print('选取第2行,第4行:\n', df.loc[[0, 3]])

在这里插入图片描述

print('选取前3行:\n', df.loc[0:2])

在这里插入图片描述
第三种,传入条件:

print('选取【学历】是本科的数据:\n', df.loc[df['学历'] == '本科', ['学历', '所在地']])

在这里插入图片描述
(2)iloc用法
语法:df.iloc[行索引位置,列索引位置]
iloc与loc不同的是,iloc是基于位置来选取数据。只接受整型数据,如df.iloc[1]、df.iloc[1,2]、df[:4,3]、df[1,[1,2,5]]

print('选取【关键词】字段的前4行数据:\n', df.iloc[:4, 0]) # iloc用法

在这里插入图片描述
注:这里的“:4”表示行的位置[0,4),从0开始,左闭右开;“0”则表示【关键词】字段在第一个位置。
总体来看,loc使用更为灵活,代码可读性更高。

5、ix数据选择

ix方法在使用时既可以接收索引名称,也可以接收索引位置。
语法:df.ix[行索引的名称或位置或条件,列索引名称或位置]
注意:当索引名称和位置存在部分重叠时,ix默认优先识别名称。
ix方法在pandas 1.0.0之后,已经移除,用loc和iloc方法进行替换。
在这里插入图片描述
以上就是pandas数据选取的常见用法。

【微信搜索【一位代码】即可关注我】
-end-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位代码

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值