微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas如何在列上执行比较

我需要找到coulmn两个值在1.5和3.5之间的所有行.我期待的结果是索引1和2的行.我尝试了以下代码,但收到错误.

>>> d = {'one' : [1., 2., 3., 4.],
...  'two' : [4., 3., 2., 1.],
... 'three':['a','b','c','d']}
>>> d
{'three': ['a', 'b', 'c', 'd'], 'two': [4.0, 3.0, 2.0, 1.0], 'one': [1.0, 2.0, 3.0, 4.0]}
>>> DataFrame(d)
   one three  two
0    1     a    4
1    2     b    3
2    3     c    2
3    4     d    1
>>> df = DataFrame(d)
>>> df[1.5 <= df['two'] <= 3.5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> 

解决方法:

不幸的是,你不能用numpy(因此还有pandas)进行链式比较.改为:

df[(1.5 <= df.two) & (df.two <= 3.5)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐