如何将DataFrame中的值与某些条件匹配?

时间:2017-12-14 19:37:08

标签: python pandas

我有两个数据帧但我无法完成这个简单的任务,我想匹配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]

1 个答案:

答案 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