按多列对 Pandas Dataframe 进行排序
按多列对 Pandas Dataframe 进行排序是数据分析中的常见操作。考虑一个包含“a”、“b”和“c”列的数据框。要按“b”列升序和“c”列降序对此数据框进行排序,请按照下列步骤操作:
从 Pandas 版本 0.17.0 开始,排序方法已被弃用,转而使用 sort_values。从版本 0.20.0 开始,排序已被完全删除。但是,参数和结果保持不变:
df.sort_values(['a', 'b'], ascending=[True, False])
使用已弃用的排序的等效方法方法是:
df.sort(['a', 'b'], ascending=[True, False])
例如,考虑一个数据帧 df1,其列“a”和“b”中具有随机整数值:
import pandas as pd import numpy as np df1 = pd.DataFrame(np.random.randint(1, 5, (10, 2)), columns=['a', 'b'])
按 'a' 升序排序此数据帧order 和 'b' 按降序排列给出:
df1.sort(['a', 'b'], ascending=[True, False])
a b 2 1 4 7 1 3 1 1 2 3 1 2 4 3 2 6 4 4 0 4 3 9 4 3 5 4 1 8 4 1
请记住,默认情况下排序方法不是就地排序。要使用排序值更新 df1,请将排序方法的结果分配给 df1 或在方法调用中使用 inplace=True:
df1 = df1.sort(['a', 'b'], ascending=[True, False])
或
df1.sort(['a', 'b'], ascending=[True, False], inplace=True)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3