实施例: 目前的df看起来像:
df=
A B
1 5
2 6
3 8
4 1
我希望得到的df像这样(B被排序,A保持不变):
df=
A B
1 8
2 6
3 5
4 1
答案 0 :(得分:8)
您需要打破内部Pandas安全机制 - aligning by index
,它负责data consistency
。因此,分配1D Numpy数组或vanilla Python列表就可以了,因为它们都没有索引,所以Pandas无法做对齐:
df['B'] = df['B'].sort_values(ascending=False).values
或
df['B'] = df['B'].sort_values(ascending=False).tolist()
两者都屈服:
In [77]: df
Out[77]:
A B
0 1 8
1 2 6
2 3 5
3 4 1
答案 1 :(得分:0)
您也可以这样做:
df['B'] = sorted(df['B'].tolist())[::-1]