我有两个数据帧但我无法完成这个简单的任务,我想匹配2列,如果该条件为True,则将值附加到相应的行中。这样的事情。
0 1 weight
0 Pablo Frida 2
1 Pablo Andy 1
2 Pablo Vincent 1
3 Claude Georgia 3
4 Claude Andy 1
5 Georgia Andy 1
6 Andy Frida 1
7 Andy Joan 1
8 Andy Lee 1
9 Vincent Frida 2
10 Joan Lee 3
0 1 2 weight
0 Andy Claude 0 0.0
1 Andy Frida 20 0.0
2 Andy Georgia -10 0.0
3 Andy Joan 30 0.0
4 Andy Lee -10 0.0
..
..
17 Frida Vincent 60 0.0
18 Georgia Joan 0 0.0
预期的结果将是这样的:
0 1 2 weight
0 Andy Claude 0 1
1 Andy Frida 20 1
2 Andy Georgia -10 1
3 Andy Joan 30 1
4 Andy Lee -10 1
..
..
17 Frida Vincent 60 2
18 Georgia Joan 0 0.0
所以我面临的问题是列可能是不同的顺序,即它是一组名称。 第一个DataFrame的维度为(11,3) 第二个DataFrame的维度为(19,4)
我该如何处理这个问题?我正在尝试这样的事情:
for i in len(df2):
if df1[0][i] == df2[0][i] or df1[0][i] == df2[1][i] and df1[1][i] == df2[0][i] or df1[0][i] == df2[0][i]:
df2['weight'][i] = df1['weight'][i]
答案 0 :(得分:1)
对列进行排序 -
<cfdump var=#variables#>
<cfdump var=#application#>
test == "test2"
myvariable == 5
现在,执行内部df1.iloc[:, :2] = np.sort(df1.iloc[:, :2], axis=1)
df2.iloc[:, :2] = np.sort(df2.iloc[:, :2], axis=1)
-
merge