python - 使用 SQL 服务器连接对日期进行 Python 行迭代。迭代python数据框中的多列
问题描述
我有一个带有主索引和两个日期列的数据框。我正在使用主索引从 SQL 服务器检索数据,检索到的数据具有美元值和日期。
初始数据框看起来
Primary_index Issue_date Experience_date
abc101 08/01/2018 08/01/2020
abc102 02/01/2018 02/01/2020
abc103 04/13/2017 04/13/2018
abc104 07/27/2019 07/27/2020
SQL数据是这个
Primary_index Paid_date Amount
abc101 07/01/2017 $50
abc102 02/13/2018 $100
abc101 05/23/2019 $500
abc104 07/02/2020 $175
abc104 09/02/2017 $175
我需要迭代 Primary_index 以及 Issue_date 和 Experience_date,以确保 Paid_date 在 Issue_date 和 Experience_date 之间。
我正在迭代主索引,如下所示
df['Primary_Index'] = df['Primary_Index'].astype(str).str.strip()
Primary_list = df['Primary_Index'].apply(lambda x: "'{}'".format(x)).tolist()
list_split = [Primary_list [x:x+10000] for x in range(0, len(Primary_list), 10000)]
filter_list = []
for list in list_split:
filter_list.append(','.join(list))
df_final = pd.DataFrame()
for i in filter_list:
sql="""
SELECT
DB.tbl.Primary_Index,
DB.tbl.Paid_date
FROM
DB.tbl
WHERE
DB.tbl.Primary_Index IN ("""+i+""")
AND
DB.tbl.Paid_date BETWEEN '2017-01-02 00:00:00' AND '2020-06-30 00:00:00'
Group by
DB.tbl.Primary_Index,
DB.tbl.Paid_date
"""
df_final = df_final.append(pd.read_sql(sql,con))
问题是我已经硬编码了返回数百万行的最小和最大付费日期。有没有办法迭代初始数据框中的日期以及primary_index?
解决方案
推荐阅读
- apache-spark - 将字符串转换为时间戳
- reactjs - 如何刷新 Table 组件 onChange 事件
- javascript - 空jQuery时更改div的属性
- google-app-engine - 谷歌负载均衡器到 Cloud Run 给出 404
- windows - For 循环运行两次,但仅针对第一个文件
- excel - 锁定依赖于其他单元格的单元格
- sql - SQL解析ORACLE 将行转换为列
- sql-server - Automapper ProjectTo<> 不适用于 Count()
- javascript - 如何在 EXT JS 中的分段按钮上应用样式
- java - 如何在 MacOS 上使用 Java 进行 Touch ID 身份验证