Python 在类标签不变的情况下对数据帧进行排序

Python 在类标签不变的情况下对数据帧进行排序,python,sorting,pandas,Python,Sorting,Pandas,我想按升序对数据框的每一列进行排序 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_co

我想按升序对数据框的每一列进行排序

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行(即索引=4)中的输入值为0.273200,对应的类为-1,输入值为0.330514,对应的类为1,但在对df进行排序后,上述值的类值发生了变化,这是不应该发生的。请建议我如何调整要与相应输入值关联的类列的代码。

应完成以下工作:

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
我们应该做这项工作:

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

@fuglede您给出的解决方案是返回原始数据帧,而不是排序。@vikky:它返回排序后的
数据帧。如果你需要的话,你可以用它覆盖df
。@fuglede确切地说,我想用排序的值覆盖df列使用
df.sort\u值(by='a',inplace=True)
@fuglede你给出的解决方案是返回原始数据帧,而不是排序。@vikky:它返回一个排序的
数据帧。如果你需要的话,你可以用这个来覆盖df
。@fuglede确切地说,我想用排序后的值覆盖df列使用
df.sort\u值(by='a',inplace=True)