Pandas SQLalchemy:数据库列的复杂过滤器

时间:2016-06-15 18:30:41

标签: python mysql pandas sqlalchemy

我是SQLalchemy和pandas的新手。我正在编写一个python代码来查询mysql数据库。

我从数据库中获取数据并将数据保存在pandas数据帧中。我可以在pandas数据帧列上进行简单的操作,比如

示例1:获取所有列都具有某些值[Col1 and Col2 and Col3]

的行

示例2:获取其中任一列具有某些值[Col1 or Col2 or Col3]

的行

示例3:[Col1 or Col2][Col3 or Col4]

这是我到目前为止用pandas dataframe[col_list].notnull().any(axis=1)操作可以实现的。现在我必须做一些复杂的语句,如[[Col1 OR Col2] AND [Col3 OR Col4]] OR [Col5 OR Col6]。这些语句由用户提供,作为脚本的输入。

我想知道是否有一种更为有效的方法(直接作为逻辑陈述)或直接使用sqlalchemy查询?

谢谢,

Rtut

1 个答案:

答案 0 :(得分:0)

使用pandas,您可以使用boolean indexing过滤数据框。例如,您可以执行

之类的操作
filtered = df[(df['Column 1'] == 'some value') or (df['Column 2'] == 'some value') and (df['Column 3'] > 15)]