我有一个看起来像这样的df
df = pd.DataFrame({'A' : ['1','2','3','7'],
'B' : [7,6,5,4],
'C' : [5,8,7,1],
'v' : [1,9,9,8]})
df=df.set_index('A')
df
B C v
A
1 7 5 1
2 6 8 9
3 5 7 9
7 4 1 8
我想对它进行排序,以便B和C列分别显示两者的较低和较高值,即
B C v
A
1 5 7 1
2 6 8 9
3 5 7 9
7 1 4 8
我可以在遍历每一行的for
循环中执行此操作,但是我想知道是否有更好的方法?
答案 0 :(得分:4)
如果性能很重要,请在axis=1
中使用numpy.sort
:
df[['B','C']] = np.sort(df[['B','C']], axis=1)
print (df)
B C v
A
1 5 7 1
2 6 8 9
3 5 7 9
7 1 4 8