Python 3.x 如果两个单元格相同但顺序不同,则求两行

Python 3.x 如果两个单元格相同但顺序不同,则求两行,python-3.x,pandas,Python 3.x,Pandas,如下所示 Buyer Seller Amount John Mary 3 Mary John 2 David Bosco 2 我想把约翰和玛丽排成一行 预期结果 Trade1 Trade2 Amount John Mary 5 David Bosco 2 我的数据帧大约有6000行。感谢您的帮助首先按值排序,然后按创建布尔掩码,然后聚合总和: df[['Buyer','Seller']] = pd.DataFrame(np.sort(df[['Buyer','Sel

如下所示

Buyer Seller Amount
John  Mary   3
Mary  John   2
David Bosco  2
我想把约翰和玛丽排成一行

预期结果

Trade1 Trade2 Amount
John   Mary   5
David  Bosco  2
我的数据帧大约有6000行。感谢您的帮助

首先按值排序,然后按创建布尔掩码,然后聚合
总和

df[['Buyer','Seller']] = pd.DataFrame(np.sort(df[['Buyer','Seller']], axis=1))

df2 = df.groupby(['Buyer','Seller'], as_index=False)['Amount'].sum()
df2.columns = ['Trade1','Trade2','Amount']
print (df2)
  Trade1 Trade2  Amount
0  Bosco  David       2
1   John   Mary       5
如果不想修改原始列,请使用语法sugar-
groupby
Series

df1 = pd.DataFrame(np.sort(df[['Buyer','Seller']], axis=1))
df1.columns = ['Trade1','Trade2']

df2 = df['Amount'].groupby([df1['Trade1'],df1['Trade2']]).sum().reset_index()
print (df2)
  Trade1 Trade2  Amount
0  Bosco  David       2
1   John   Mary       5