gpt4 book ai didi

python - Pandas:通过 OR 条件索引行

转载 作者:行者123 更新时间:2023-11-30 22:55:40 25 4
gpt4 key购买 nike

我正在尝试过滤掉数据框中允许两列有两种值组合的某些行。例如,列“A”和“B”只能是“A”> 0 和“B”> 0 或“A”< 0 和“B”< 0。我想要过滤的任何其他组合。

我尝试了以下方法

df = df.loc[(df['A'] > 0 & df['B'] > 0) or (df['A'] < 0 & df['B'] < 0)]

这给了我一个错误:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我知道这可能是一个非常微不足道的问题,但说实话,我找不到任何解决方案,而且我无法弄清楚我的方法有什么问题。

最佳答案

您需要一些括号并格式化 pandas(和/或成为 &/|):

df = df[((df['A'] > 0) & (df['B'] > 0)) | ((df['A'] < 0) & (df['B'] < 0))]

请记住这是在做什么 - 您只是构建一个巨大的 [True, False, True, True] 列表并将其传递到 df 索引中,告诉它根据是否获得 True 来保留每一行或相应列表中的 False。

关于python - Pandas:通过 OR 条件索引行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330880/

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