所以我想弄清楚如何加快这个操作。目前,真正的数据集需要大约一个小时来迭代(df1 和 df2 中约 50,000 列),这似乎不太实用。有人有什么建议吗?即 pandas 矢量化、pandas 条件等?
基本操作:查看 df1 中的每一行,并与 df2 中的每一行进行比较。如果agent_id匹配并且df1“created_at_email”日期大于或等于df2“created_at”日期,则提取该行。df1 编辑中每行允许拉取的最大行数为 4:首先按最近的日期排序。
示例数据框:
df1 = pd.DataFrame({'unique_col': ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
'agent_id': [1, 2, 3, 1, 5, 6, 7],
'created_at_email': ['1/5/2020', '1/6/2020', '1/8/2020', '1/3/2020', '1/4/2020', '1/7/2020', '1/2/2020']
})
df2 = pd.DataFrame({'unique_col': ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
'agent_id': [1, 1, 3, 1, 1, 1, 1],
'created_at': ['1/4/2020', '1/5/2020', '1/6/2020', '1/9/2020', '1/2/2020', '1/3/2020', '1/4/2020']
})
Run Code Online (Sandbox Code Playgroud)
代码(需要加速):
# pre-sorting order created at column so function …Run Code Online (Sandbox Code Playgroud)