我有两个数据框,其中一个列名是“块名称”并且在列中具有唯一值,但它们可能不完全按顺序排列,并且可能存在一些不匹配。
DFS1:
Block Name val1 val2
B1 10 100
B2 20 200
B3 30 300
DFS2:
Block Name val1 val2
B1 100 1000
B4 350 3500
B2 400 5600
我想从 DFS1 的 for 循环中获取每个“块名称”块,如果它与 DFS2 匹配,则打印两行,一行来自 DFS1,匹配为 B1,另一行来自 DFS2,匹配为 B1,与其他匹配类似行如 B2 等,如果不匹配,只需打印它是来自任一表的新行。
我正在编写如下所示的代码,但我无法在 dfs1.loc 命令中传递变量。
for b1 in dfs1['Block Name']:
print(b1)
for b2 in dfs2['Block Name']:
print(b2)
if b1 == b2:
print(dfs1.loc[dfs1['Block Name'] == 'b2'])
我在 Google 上找不到任何与 dfs.loc 相关的变量文档,其中大多数都具有固定名称。
输出应该是:
B1 10 100
B1 100 1000
B2 20 200
B2 400 5600