import pandas as pd
import numpy as np
data = 'filename.csv'
df = pd.DataFrame(data)
df
one two three four five
a 0.469112 -0.282863 -1.509059 bar True
b 0.932424 1.224234 7.823421 bar False
c -1.135632 1.212112 -0.173215 bar False
d 0.232424 2.342112 0.982342 unbar True
e 0.119209 -1.044236 -0.861849 bar True
f -2.104569 -0.494929 1.071804 bar False
我想为某个列选择一个范围,比如说第二列。我希望选择所有值在-0.5到+0.5之间的数据。如何实现这一点?
我预计要使用:
-0.5 < df["two"] < 0.5
但这会导致一个ValueError错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我尝试了
-0.5 (< df["two"] < 0.5)
但是这输出了所有的
True
。正确的输出应该是:
0 True
1 False
2 False
3 False
4 False
5 True
如何在pandas数据框的列中找到一系列值的正确方法?
编辑:问题
使用.between()
函数
df['two'].between(-0.5, 0.5, inclusive=False)
这两个词之间有什么区别呢?
-0.5 < df['two'] < 0.5
和不等式如
-0.5 =< df['two'] < 0.5
?
df.query('-0.5 <= two < 0.5')
。 - MaxU - stand with Ukraine