在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)?