【发布时间】:2019-12-09 23:36:16
【问题描述】:
我有 2 个数据框,我正在尝试根据 ID 和辅助 ID 进行合并。以下是两个数据框的示例:
First ID Second ID Company
10056526008010 0.000000e+00 Company A
10022337820851 8.152050e+11 Company B
722337820853 8.152050e+11 Company C
10056526008010 0.000000e+00 Company E
10022337820851 6.290250e+11 Company D
First ID Second ID Company Availability
878968000512 0.000000e+00 Company F Y
10022337820851 8.152050e+11 Company B Y
10022337820851 8.152050e+11 Company B Y
722337820853 8.152050e+11 Company C N
10056526008010 0.000000e+00 Company E N
10056526008010 0.000000e+00 Company G N
10022337820851 6.290250e+11 Company D Y
我希望能够根据第一个与第一个 ID 的匹配进行合并,然后检查辅助 ID 是否匹配,如果匹配,则应合并,如果不匹配,则不应(我怀疑需要内部合并)。如果辅助 ID 为 0,则应进行公司名称的模糊匹配。有没有办法做到这一点?所需的输出如下所示:
First ID Second ID Company Availability
10022337820851 8.152050e+11 Company B Y
722337820853 8.152050e+11 Company C N
10056526008010 0.000000e+00 Company E N
10056526008010 0.000000e+00 Company G N
10022337820851 6.290250e+11 Company D Y
这种方式首先根据第一个 ID 匹配 2 个数据帧,然后使用第二个 ID 检查重复项,如果第二个 ID 为 0,则基于公司进行类似的匹配。如果没有出现第二个 ID 或公司的匹配项,则不会对该行进行合并。
【问题讨论】:
-
如果辅助 id 为 0,您是否只将其与辅助 id 为 0 的其他行或任何基于公司名称模糊匹配的行匹配?
-
为什么在你的最终结果中第一名是
10056526008010和公司g?
标签: python pandas merge fuzzy-comparison