我想按升序对数据框的每一列进行排序
df:
a class
0 0.726300 1
1 0.330514 1
2 0.261841 1
3 0.321594 -1
4 0.273200 -1
5 0.125400 1
code:
for each_column in df.columns:
if each_column !='class':
df[each_column] = sorted(df[each_column])
sorted df:
a class
0 0.125400 1
1 0.261841 1
2 0.273200 1
3 0.321594 -1
4 0.330514 -1
5 0.726300 1
但我希望类列具有与原始数据框中相对应的输入值。例如在原始df中,在第4行(即index = 4),输入值为0.273200,对应的类为-1,输入值为0.330514,对应的类为1,但在对df进行排序后得到的类值改变了上述值,不应该发生。请建议我如何调整类列的代码以与相应的输入值相关联。
答案 0 :(得分:0)
DataFrame.sort_values
应该做的工作:
In [5]: df
Out[5]:
a class
0 0.726300 1
1 0.330514 1
2 0.261841 1
3 0.321594 -1
4 0.273200 -1
5 0.125400 1
In [6]: df.sort_values(by='a')
Out[6]:
a class
5 0.125400 1
2 0.261841 1
4 0.273200 -1
3 0.321594 -1
1 0.330514 1
0 0.726300 1