Python pd.read_sql where cause参数

时间:2018-06-06 20:47:44

标签: python pandas

使用案例 我们有嵌套查询,我们的表有1000万到2000万行。这里我们的目的是通过智能过滤器减少查询CPU时间

我想通过其他数据框列名过滤pd.read_sql中的列。这可能吗?

步骤1:df1数据框age1和age3是我未来的pd.read_sql过滤列

raw_data1 = {'age1': [23,45,21],'age2': [10,20,50], 'age3':['forty','fortyone','fortyfour']}
    df1 = pd.DataFrame(raw_data1, columns = ['age1','age2','age3'])
    df1

Step2:我喜欢从df1数据帧中获取age1想要在下面的pd.read_sql中使用,以获取item1数据帧

item1 = pd.read_sql("""
SELECT * from [dbo].[ITEM]
where item_age1 = df1.age1
""", conn)

Step3:我喜欢从df1数据帧中取出age3想要在下面的pd.read_sql中使用,以获取item2数据帧

item2 = pd.read_sql("""
SELECT * from [dbo].[ITEM]
where item_age3 = df1.age3
""", conn)

1 个答案:

答案 0 :(得分:0)

使用参数化查询:

'%s'

取决于数据库后端,此语法可能使用%(name)s'?'而不是paramstyle。有关详细信息,请参阅PEP249 06-06 23:50:28.340 27670-27706/mys.timer E/AndroidRuntime: FATAL EXCEPTION: Timer-0 Process: mys.timer, PID: 27660 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.