gpt4 book ai didi

python-3.x - 如何在 Pandas 中选择只有正值或负值的行

转载 作者:行者123 更新时间:2023-12-03 21:16:53 25 4
gpt4 key购买 nike

我有以下 DF:

df=pd.DataFrame({
'x':[1, 2, 3, -1, -2, -3],
'y':[-1, 3, 2, -4, 3, -2],
'z':[1 , 1, 5, 2, 1, -1]

})
或者
       x  y  z
0 1 -1 1
1 2 3 1
2 3 2 5
3 -1 -4 2
4 -2 3 1
5 -3 -2 -1

目标是找到所有元素都具有相同(负或正)值的行。
在本例中,这意味着选择第 1、2 和 5 行。

我将不胜感激任何帮助。
我知道这个问题: Pandas - Compare positive/negative values
但它没有解决值为负的情况。

谢谢 :)

最佳答案

您可以使用 OR ( | ) 来组合条件:

print(df[(df[df.columns] >= 0).all(axis=1) | (df[df.columns] <= 0).all(axis=1)])

打印:
   x  y  z
1 2 3 1
2 3 2 5
5 -3 -2 -1

或者更简单:
print(df[(df >= 0).all(axis=1) | (df <= 0).all(axis=1)])

编辑:正如@Erfan 在评论中所说,如果你想要严格否定(没有 0),你可以使用 < :
print(df[(df >= 0).all(axis=1) | (df < 0).all(axis=1)])

关于python-3.x - 如何在 Pandas 中选择只有正值或负值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673019/

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