【pandas小记】pandas选择数据
发布日期:2021-06-28 20:45:45
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月11日 01时08分30秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
kotlin面试题!一口气拿了9家公司的offer,已拿offer入职
2019-04-29
retrofit优点,互联网寒冬公司倒闭后,年薪50W
2019-04-29
retrofit原理面试,Android性能优化最佳实践,面试必备
2019-04-29
【工作感悟】Android多进程从头讲到尾,offer拿到手软
2019-04-29
【微信小程序】面试一路绿灯Offer拿到手软,好文推荐
2019-04-29
Android之内存泄漏调试学习与总结,分享PDF高清版
2019-04-29
事件分发机制怎么回答,Android开发究竟该如何学习,使用指南
2019-04-29
事件分发机制流程图,带你全面理解View的绘制流程,附大厂真题面经
2019-04-29
Android最强进程保活黑科技实现原理解密及方法,含BATJM大厂
2019-04-29
Android最强进程保活黑科技实现原理解密及方法,帮你突破瓶颈
2019-04-29
Android架构师教你如何突破瓶颈,内含福利
2019-04-29
Android架构组件Room功能详解,全网独家首发!
2019-04-29
android查看网络请求和响应,我的移动开发春季历程,隔壁都馋哭了
2019-04-29
android移动开发,一线互联网大厂面试真题系统收录!大牛最佳总结
2019-04-29
Android程序员最大的悲哀是什么?Android岗
2019-04-29
Android组件化入门,重难点整理
2019-04-29
android设计模式原则,4个改变你编程技能的小技巧,手慢无
2019-04-29
Android跨进程通信导论,全网疯传
2019-04-29
想学IT的必看!我的Android美团求职之路,面试总结
2019-04-29
扫地阿姨看完都学会了!大厂offer手到擒来,经典好文
2019-04-29