ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

做鸢尾花切片练习中的'&'问题:(&,|)和(and,or)

2021-12-30 08:03:03  阅读:212  来源: 互联网

标签:iris petal 练习 sepal 切片 索引 length 鸢尾花 type


课上练习:要求取petal_length和petal_width两列,满足筛选条件为sepal_length>=5且species=setosa

1  iris.loc[(iris['sepal_length']>5)&(iris['species']=='setosa'),['petal_length','petal_width']]

其中&前后我一开始用的是列表,报错:

1 ---------------------------------------------------------------------------
2 TypeError                                 Traceback (most recent call last)
3 <ipython-input-208-bf5bcdcb2ea9> in <module>
4 ----> 1 iris.loc[[iris['sepal_length']>5]&[iris['species']=='setosa'],['petal_length','petal_width']]
5 
6 TypeError: unsupported operand type(s) for &: 'list' and 'list'

比较如下:

 1 type(iris['sepal_length']>5) 

pandas.core.series.Series #返回有索引的序列

 1 type((iris['sepal_length']>5)) 

pandas.core.series.Series #返回有索引的序列

 

1 type([iris['sepal_length']>5]) 

list                                  #列表 

原因:得到的是序列,序列因为有索引可以自动对齐,列表没有索引
(&,|)和(and,or):
参考:https://blog.csdn.net/weixin_40041218/article/details/80868521
1>a,b是数值变量, 则&, |表示位运算, and,or则依据是否非0来决定输出
2>a, b是逻辑变量, 则两类的用法基本一致 

在DataFrame的切片过程,要注意逻辑变量的使用,需要求得满足多个逻辑条件的数据时,要使用& 和|,在某些条件下用and/ or会报错:

‘ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().’

    

 

标签:iris,petal,练习,sepal,切片,索引,length,鸢尾花,type
来源: https://www.cnblogs.com/xuwinwin/p/15747379.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有