<分区>
我最近开始在工作中使用 python 而不是 SQL。我无权访问任何服务器,也不允许我安装 SQL SERVER EXPRESS 的本地实例。数据集太大,无法使用 Excel 或 Access。
我正在使用我对 python 的有限知识作为解决方法。我已经成功地分析了其他数据集,但这个数据集提出了新的挑战。 我有一个非常大的数据集(25 行以上),我想执行与此等效的操作: 在 T-SQL 中:
SELECT
A.TransactionDate,
B.StartDate,
B.EndDate,
B.RefValue
FROM table1 AS A
LEFT JOIN table2 AS B
ON A.TransactionDate BETWEEN B.StartDate AND B.EndDate
或
ON A.Date1 >= B.StartDate AND A.Date <= B.EndDate
示例数据:
import pandas as pd
df1 = pd.DataFrame(
{
'TranDate': ['2018/01/05', '2018/02/07', '2018/03/24']
,'Loc': [4000, 5000, 4200]
}
)
df2 = pd.DataFrame(
{
'StartDate': ['2018/01/01', '2018/02/01', '2018/03/01']
,'EndDate': ['2018/01/31','2018/02/28', '2018/03/30']
,'PP': ['01', '02', '03']
}
)
预期数据框:
dfR = pd.DataFrame(
{
'TranDate': ['2018/01/05', '2018/02/07', '2018/03/24']
,'Loc': [4000, 5000, 4200]
,'PP': ['01', '02', '03']
}
)
我尝试使用 pandas.merge()
语句,但是没有不等式的选项。
如何在 python 中重新创建之前的语句?