繁体   English   中英

Pandas.Dataframe:有没有一种有效的方法来翻译多个WHERE SQL语句?

[英]Pandas.Dataframe: Is there an efficient way to translate multiple WHERE SQL statements?

所以我想翻译像

SELECT *
FROM MY_TABLE
WHERE MY_ATTRIBUTE IN (8945, 8899, 4501, 6874, 3256, 8881, 1017)

在python中使用Pandas数据框。

,这样做的方法是

mydataframe[mydataframe['myattribute'] == 8945 | 
            mydataframe['myattribute'] == 8899 | 
            mydataframe['myattribute'] == 4501 | 
            mydataframe['myattribute'] == 6874 | 
            mydataframe['myattribute'] == 3256 | 
            mydataframe['myattribute'] == 8881 | 
            mydataframe['myattribute'] == 1017]

这是很不美观的,随着属性长和值列表大,情况变得更糟。

有没有办法用较少的冗余代码正确地做到这一点?

就像是

mydataframe[mydataframe['myattribute'] in (8945, 8899, 4501, 6874, 3256, 8881, 1017)]

会很好,但是会引发以下错误:

ValueError:系列的真值不明确。 使用a.empty,a.bool(),a.item(),a.any()或a.all()。

使用Series方法isin()与list进行比较:

mydataframe[mydataframe['myattribute'].isin([8945, 8899, 4501, 6874, 3256, 8881, 1017])]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM