python - 如何在不更改 pandas 中的其他列的情况下对一列进行排序?

标签 python pandas sorting dataframe

例子: 当前的 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/

相关文章:

python - 无法在 Windows 10 上构建 mod_wsgi - "Cannot open include file: ' ws2tcpip.h'"- 有 VS 2019 构建工具

python - 避免在 pandas 中多次写入相同的 .loc

asp.net-mvc - ASP.NET MVC : Custom Sorting

Python 将日期和时间转换为 pandas 索引

mysql - 按截止时间对 MySQL 表进行排序

c - 通过双指针访问数组,丢失其主体,纯 C

python - 检查年份是否在字符串中(4 个连续数字)

Python SQL 炼金术 : table with no primary keys and duplicate values?

python - "pip install"和 "python -m pip install"有什么区别?

python - 使用 pandas 和 json_normalize 来展平嵌套的 JSON API 响应