【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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Oracle】浅析游标使用
下一篇:【pandas 小记】rename、reindex、set_index

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月02日 18时46分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Java泛型详解 2019-04-29
Hadoop集群hdfs添加磁盘操作 2019-04-29
【运维篇】HDFS磁盘选择策略详解 2019-04-29
“App can’t be opened because it is from an unidentified developer” 的解决之道? 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美团求职之路,安卓系列学习进阶视频 2019-04-29
安卓开发招聘!免费Android高级工程师学习资源,2年以上经验必看 2019-04-29
最新整理《Android架构师面试题解析大全》,深度解析跳槽从开始到结束完整流程,面试建议 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