【pandas小记】pandas选择数据
发布日期:2021-06-28 20:45:45
浏览次数:3
分类:技术文章
本文共 1703 字,大约阅读时间需要 5 分钟。
1.索引分类
1.1类型
索引类型 | 说明 |
---|---|
整数索引 | 与数组的整数下标相同,从0开始到n-1,通过下标选择数据,可以使用切片的方式选择数据。 |
标签索引 | 参数index、columns中指定的名称,直接通过名称选择数据,也可以使用切片的方式选择数据。 |
布尔索引 | 这与numpy的索引方式相似,相当于选择满足条件的数据。 |
1.2 注意
1,若直接使用[ ]选择数据时,不能直接选择具体的元素。
用’column_name’,即列的轴标签选择列的数据。 用’index_sliceable’,即行的整数索引或标签索引的切片选择行数据。import pandas as pdimport numpy as npframe = pd.DataFrame(np.arange(25).reshape((5, -1)), index=list('abcde'), columns=['one', 'two', 'three', 'four', 'five'])print(frame[['one', 'five']]) #用'column_name'print(frame[:3]) # 用'index_sliceable',index切片
至于为啥会是这样规定,debug了下,没看懂,但是看到这两句代码,有知道原因的可麻烦评论告诉我。
indexer = self.columns.get_loc(key)indexer = convert_to_index_sliceable(self, key)
2,在切片时,整数索引与标签索引的切片结果有差异
print(frame[:3]) #左闭右开""" one two three four fivea 0 1 2 3 4b 5 6 7 8 9c 10 11 12 13 14"""print(frame[:'c']) #左闭右闭""" one two three four fivea 0 1 2 3 4b 5 6 7 8 9c 10 11 12 13 14"""
可以看出区别,用整数索引进行切片时,左边等于右边不等于,即是0<= index < 2,而使用标签索引则是’a’<= index<=‘c’。 所以需要注意这两种类型的索引使用。
2.loc和iloc
DataFrame可以使用loc和iloc来选择数据,而两者是根据“标签”或“整数”索引来选择的,
print(frame.loc['a':'c', :'three'])""" one two threea 0 1 2b 5 6 7c 10 11 12"""print(frame.iloc[0:, :3])""" one two threea 0 1 2b 5 6 7c 10 11 12d 15 16 17e 20 21 22"""
3.at和iat
与loc和iloc类似,都提供基于整数或者标签索引的查找。如果只需要获取或设置单个值时,可使用at和iat。
print(frame.at['a', 'three']) #2print(frame.iat[0, 3]) #3frame.iat[0, 0] = 100 # 修改元素print(frame)
最后,正是由于pandas功能这么强大,整数索引和标签索引,将标签设置为整数时,就会造成歧义。所以,如果使用整数作为标签,那么在数据选择是使用loc 或者 iloc,这样可以明确知道使用的是哪种类型的索引,从而精确地选择数据。
转载地址:https://blog.csdn.net/yangjjuan/article/details/104741800 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月02日 18时46分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java泛型详解
2019-04-29
Hadoop集群hdfs添加磁盘操作
2019-04-29
【运维篇】HDFS磁盘选择策略详解
2019-04-29
macOs 静默安装dmg文件
2019-04-29
linux 命令学习 ls
2019-04-29
时间管理
2019-04-29
重识SQLHelper
2019-04-29
安卓开发快速上手!我的Android美团求职之路,安卓系列学习进阶视频
2019-04-29
安卓开发招聘!免费Android高级工程师学习资源,2年以上经验必看
2019-04-29
泪目!带你全面解析Android框架体系架构view篇,年薪50W
2019-04-29
大厂架构师经验分享!我离职后面试收割小米等大厂offer,知乎上已获万赞
2019-04-29
安卓开发视频教学!10天用Flutter撸了个高仿携程App,内含福利
2019-04-29
安卓主板开发!Android之内存泄漏调试学习与总结,社招面试心得
2019-04-29
安卓前端开发框架!完美讲解内存缓存LruCache实现原理,吐血整理
2019-04-29
安卓前端开发框架!轻松获得一线大厂面试offer,附答案
2019-04-29
安卓前端开发!Android性能优化之APK优化,赶快收藏备战金九银十!
2019-04-29
安卓定制系统开发!这是一份面向Android开发者的复习指南,系列篇
2019-04-29