为了账号安全,请及时绑定邮箱和手机立即绑定

连接存储在 numpy 数组中的两个数据表的有效方法是什么?

连接存储在 numpy 数组中的两个数据表的有效方法是什么?

PIPIONE 2021-11-09 20:34:45
我有两个表示数据表的 numpy 数组字典。第一个表是工作列表 (job_no) 及其开始日期 (start_date)。第二个表是每个作业要完成的任务列表 (task_no)。我想通过加入 job_no 来有效地将开始日期添加到任务级表中。下面是将正确的开始日期添加到任务级别表后的表格外观示例。job_no | start_date    job_no | task_no .    start_date_______ ___________    _______ ________ .    __________0      | 2019-01-01    0      | 1       .    2019-01-011      | 2019-01-04    0      | 2       . +  2019-01-012      | 2019-01-20    0      | 3       .    2019-01-013      | 2019-02-03    1      | 1       .    2019-01-044      | 2019-02-13    1      | 2       .    2019-01-04...我通常会尽量避免使用 python 循环,而是使用 numpy 函数来提高效率,但我坚持在这种情况下如何做到这一点。我的数据集有大约 25000 个工作和 100000 个任务,下面的代码在完成上面的过程中很慢。jobs = {job_no : np.array(...), start_date : np.array(...)}tasks = {job_no : np.array(...), task_no : np.array(...)}tasks['start_date'] = np.empty(len(tasks['job_no']))for job_ind, job_no in enumerate(jobs['job_no']):    inds = np.where(tasks['job_no'] == job_no)    tasks['start_date'][inds] = jobs['start_date'][job_ind]使用 numpy 函数有没有更有效的方法来做到这一点?
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

使用 pandas 定义一个数据框,然后进行简单的外连接。取决于您从何处读取内容,但尝试将其获取到 Pandas 数据框。假设您设法将作业编号和开始日期设为 PD1,将 PD2 设为任务编号和开始日期。然后是 job_no 上的简单连接函数:

PD3= pandas.merge(PD1, PD2, how='outer', on=['job_no'])


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信