Python 如何使用熊猫中的交换值按两列分组?

Python 如何使用熊猫中的交换值按两列分组?,python,pandas,Python,Pandas,我想按适用交换规则的列分组 比如说 第1列,第2列在第一行中包含值(a,b),在另一行中包含值(b,a),然后我想对这两条记录进行分组,执行分组操作 输入: From To Count a1 b1 4 b1 a1 3 a1 b2 2 b3 a1 12 a1 b3 6 From To Count(+) a1 b1 7 a1 b2 2 b3 a1 18 输出: From To

我想按适用交换规则的列分组

比如说
第1列
第2列
在第一行中包含值
(a,b)
,在另一行中包含值
(b,a)
,然后我想对这两条记录进行分组,执行分组操作

输入:

From    To  Count
a1      b1  4
b1      a1  3
a1      b2  2
b3      a1  12
a1      b3  6
From    To  Count(+)
a1      b1  7
a1      b2  2
b3      a1  18

输出:

From    To  Count
a1      b1  4
b1      a1  3
a1      b2  2
b3      a1  12
a1      b3  6
From    To  Count(+)
a1      b1  7
a1      b2  2
b3      a1  18
我尝试在交换元素后应用group by。但是我没有任何方法来解决这个问题。帮我解决这个问题

提前感谢。

用于对每行进行排序:

cols = ['From','To']
df[cols] = pd.DataFrame(np.sort(df[cols], axis=1))
print (df)
  From  To  Count
0   a1  b1      4
1   a1  b1      3
2   a1  b2      2
3   a1  b3     12
4   a1  b3      6

df1 = df.groupby(cols, as_index=False)['Count'].sum()
print (df1)
  From  To  Count
0   a1  b1      7
1   a1  b2      2
2   a1  b3     18

您只需执行
df[cols]=np.sort(df[cols],1)