【发布时间】:2020-01-24 03:45:44
【问题描述】:
我有 3 个数据框。第一个数据框(例如 df1)有多个行和列。第二个和第三个数据帧(比如 df2 和 df3)只有一行和来自 df1 的列子集。 df2 和 df3 中的列名相同。所以我想做的是将df1中的每一行与df2和df3中的单行进行比较。如果来自 df1 的单元格的值与 df2 的单元格内容匹配,则将 df1 中的单元格的值替换为 1,如果来自 df1 的单元格的值与 df3 匹配,则将 df1 中的单元格的值替换为 2 和如果 df2 的单元格内容与 df2 或 df3 都不匹配,请将 df1 中的单元格的值替换为 -。我写了一个循环来做到这一点,但它很慢。我想知道是否有任何优化的方法可以做到这一点。谢谢。
以下是示例数据框和预期输出:
df1
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12
q w e r t y q w e r t y
q e r t y q e r e r t y
w e r t y t q w e r w t
df2
c5 c6 c7 c8 c9 c10 c11 c12
t y q w e t w t
df3
c5 c6 c7 c8 c9 c10 c11 c12
y q q t e r t t
Expected output:
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12
q w e r 1 1 1 1 1 2 2 -
q e r t 2 2 - - 1 2 2 -
w e r t 2 - 1 1 1 2 1 1
【问题讨论】: