例子: 当前的 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
最佳答案
您需要打破内部 Pandas 安全机制 - 按索引对齐
,它负责数据一致性
。因此,分配一维 Numpy 数组或普通 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
关于python - 如何在不更改 pandas 中的其他列的情况下对一列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50821008/