我想按适用可交换规则的列分组。
例如,column 1,column 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我试着在交换元素之后申请分组。但我没有办法解决这个问题。帮我解决这个问题。
提前谢谢。
发布于 2018-10-12 10:29:50
使用numpy.sort对每一行进行排序:
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 18https://stackoverflow.com/questions/52777551
复制相似问题