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)