gpt4 book ai didi

python - Dataframe 按列值过滤行

转载 作者:太空狗 更新时间:2023-10-29 21:18:06 29 4
gpt4 key购买 nike

我有一个数据框 df

       Num1   Num2 
one 1 0
two 3 2
three 5 4
four 7 6
five 9 8

我想过滤 Num1 中值大于 3 且 Num2 中值小于 8 的行。

我试过了

df = df[df['Num1'] > 3 and df['Num2'] < 8]

但是错误发生了。

ValueError:Series 的真值不明确。

所以我用了

df = df[df['Num1'] > 3]
df = df[df['Num2'] < 8]

我认为代码可以更短。

还有其他办法吗?

最佳答案

您需要添加 (),因为按位运算符 & 的运算符优先级为:

df1 = df[(df['Num1'] > 3) & (df['Num2'] < 8)]
print (df1)
Num1 Num2
three 5 4
four 7 6

更好的解释是here .

或者如果需要最短的代码使用query :

df1 = df.query("Num1 > 3 and Num2 < 8")
print (df1)
Num1 Num2
three 5 4
four 7 6

df1 = df.query("Num1 > 3 &  Num2 < 8")
print (df1)
Num1 Num2
three 5 4
four 7 6

关于python - Dataframe 按列值过滤行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44482095/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com