将循环日期变量转换为python中的SQL

我正在Python脚本中编写Oracle SQL查询。查询如下:

query_dict={
    'df_fire':
    '''
    SELECT INSURED_ID AS CUST_ID, COUNT(*) AS CNT
    from POLICY
    WHERE POLICY_EXPDATE >= TO_DATE('2018/01/01', 'YYYY/MM/DD')
    AND POLICY_EFFDATE <= TO_DATE('2018/01/31', 'YYYY/MM/DD')
    '''
}
"""

然后将其放入泡菜文件中,并按以下方式打开它:

df_fire ={}
account, pwd = 'E', 'I!'
for var, query in query_dict.items():
    df_fire[var] = get_SQL_raw_data(account, pwd, var, query)

pickle.dump(df_fire, open('./input/df_fire.pkl', 'wb'))

df_fire_dict = pickle.load(open('./input/df_fire.pkl', 'rb'))
df_fire = df_fire_dict['df_fire']

但是,此结果仅适用于201801,没有快照日期。我的目标是从201801到202004年制作一个yyyymm数据框(如下所示)。也许我需要使用for循环,但是我不知道在哪里以及如何使用它。

My goal:

yyyymm icust_d cnt
-------------------
201801 A12345   1
201802 A12345   1
201803 A12345   2
....    ....   ....
202004 A12345   5

我是Python的新手,已经花了几个小时来研究如何执行此操作,但仍然无法完成。希望有人能帮忙。非常感谢你。

评论