使用SQL Server连接在日期上进行Python行迭代遍历python数据框中的多列

如何解决使用SQL Server连接在日期上进行Python行迭代遍历python数据框中的多列

我有一个带有主索引和两个日期列的数据框。我正在使用主索引从sql Server检索数据,检索到的数据具有美元值和日期。

初始数据框外观

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))

这个问题是我已经硬编码了最小和最大的Paid_date,它返回了数百万行。 有没有办法遍历初始数据框中的日期以及primary_index?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?