小编Jac*_*top的帖子

尝试将 df1 中的每一行与 df1 中的多个其他行进行匹配

所以我想弄清楚如何加快这个操作。目前,真正的数据集需要大约一个小时来迭代(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)

python optimization tuples dataframe pandas

5
推荐指数
1
解决办法
244
查看次数

标签 统计

dataframe ×1

optimization ×1

pandas ×1

python ×1

tuples ×1