在python中,如何根据两个值对两个数据帧进行分组?

在python中,如何根据两个值对两个数据帧进行分组?,python,pandas,group-by,Python,Pandas,Group By,我有两个相似的数据帧U和U1 U ID1 ID2 Time A Friends Distance 0 John Tom 2 1 4 1 Alex John 2 0 2 2 Alex Paul 5 1 3 3 Frank Richard 1 0 5 U1 ID1 ID2 Time B Fri

我有两个相似的数据帧
U
U1

U
    ID1      ID2  Time A    Friends Distance
0   John    Tom      2         1    4
1   Alex    John     2         0    2
2   Alex    Paul     5         1    3
3   Frank   Richard  1         0    5

U1 
    ID1      ID2    Time B  Friends Distance
0   John    Richard  2         1    0
1   Alex    Frank    2         0    1
2   Alex    Paul     3         1    3
3   Frank   Richard  2         0    5
我希望有一个基于
时间a
时间B
组合的
ID1
ID2
数据帧:

U2
    ID1     ID2      Time A Time B  Friends Distance
0   John    Tom      2         0       1    4
1   Alex    John     2         0       0    2
2   Alex    Paul     5         3       1    5
3   Frank   Richard  1         2       0    5
4   John    Richard  0         2       1    3
5   Alex    Frank    0         2       0    1
IIUC您可以使用和。最后删除带有后缀的列
\u new
并填充
0
,而不是
NaN

U2 = pd.merge(U,U1, on=['ID1', 'ID2'], how='outer', suffixes=('_new', ''))
U2 = U2.combine_first(U)
U2 = U2.drop(['Friends_new','Distance_new'], axis=1).fillna(0)
U2 = U2[['ID1', 'ID2', 'Time A', 'Time B', 'Friends', 'Distance']]
print U2
    ID1      ID2  Time A  Time B  Friends  Distance
0   John      Tom       2       0        1         4
1   Alex     John       2       0        0         2
2   Alex     Paul       5       3        1         3
3  Frank  Richard       1       2        0         5
4   John  Richard       0       2        1         0
5   Alex    Frank       0       2        0         1

可以根据条件使用combine()。来自熊猫。或者你的意思是加入/合并操作?我想合并它们,然后你必须按照文档中的解释建立条件来合并它们。你的意思是U2=U1。先合并(U)?