gpt4 book ai didi

python - 如何在 pandas 中实现多列的 bool 搜索

转载 作者:IT老高 更新时间:2023-10-28 20:30:35 26 4
gpt4 key购买 nike

我有一个 pandas df,并希望按照这些方式完成一些事情(用 SQL 术语):

SELECT * FROM df WHERE column1 = 'a' OR column2 = 'b' OR column3 = 'c' etc.

现在这适用于一个列/值对:

foo = df.loc[df['column']==value]

但是,我不确定如何将其扩展到多个列/值对。

  • 需要明确的是,每一列都匹配不同的值。

最佳答案

由于运算符优先级,您需要将多个条件括在大括号中,并使用按位与 (&) 或 (|) 运算符:

foo = df[(df['column1']==value) | (df['columns2'] == 'b') | (df['column3'] == 'c')]

如果你使用 andor,那么 pandas 很可能会提示这种比较是模棱两可的。在这种情况下,不清楚我们是否在比较条件中的系列中的每个值,如果只有 1 或除 1 之外的所有值都符合条件,这意味着什么。这就是为什么您应该使用按位运算符或 numpy np.allnp.any 来指定匹配条件的原因。

还有查询方法:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.query.html

但有一些限制主要与列名和索引值之间可能存在歧义的问题有关。

关于python - 如何在 pandas 中实现多列的 bool 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22546425/

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