python教程—使用熊猫选择基于多个等价条件的行-Python实用宝典

python教程—使用熊猫选择基于多个等价条件的行

我有一个熊猫df,想要完成以下几行(在SQL术语中):

我有一个熊猫df,想要完成以下几行(在SQL术语):

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

现在,对于一个列/值对,可以这样做:

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

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

回答

由于运算符的优先级,您需要在大括号中包含多个条件,并使用位和(&)和or(|)运算符:

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

如果您使用and或or,那么熊猫可能会抱怨这种比较是模糊的。在这种情况下,我们不清楚是否在比较该条件下序列中的每个值,以及如果只有1或除1外所有值都匹配该条件,这意味着什么。这就是为什么应该使用位操作符或numpy np。所有或np。指定匹配条件。

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

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

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论