📜  如何对 pandas df 中的行子集进行排序 - Python (1)

📅  最后修改于: 2023-12-03 15:38:43.555000             🧑  作者: Mango

如何对 Pandas df 中的行子集进行排序 - Python

在 Pandas 中,对于数据框中的行子集排序是一个非常常见的操作。可以按照指定列或多列的值对行子集进行排序。下面是一些方法来实现这个目标:

方法一:sort_values()

sort_values() 方法可用于对数据框的行子集进行排序。默认情况下,它会按照给定列的升序进行排序。下面是一个例子:

import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Doug'],
    'age': [25, 17, 32, 29],
    'gender': ['F', 'M', 'M', 'M']
})

print(df.sort_values('age'))

输出:

      name  age gender
1      Bob   17      M
0    Alice   25      F
3     Doug   29      M
2  Charlie   32      M

sort_values() 方法可以按照多列进行排序。只需将列名称作为 list 传递给 sort_values() 方法即可。下面是一个例子:

import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Doug'],
    'age': [25, 17, 32, 29],
    'gender': ['F', 'M', 'M', 'M']
})

print(df.sort_values(['gender', 'age']))

输出:

      name  age gender
0    Alice   25      F
1      Bob   17      M
3     Doug   29      M
2  Charlie   32      M

这将首先按照 gender 进行排序,然后按照 age 进行排序。

sort_values() 方法还有其他选项,例如可以指定升序或降序排序。可以阅读 Pandas 文档以获取更多信息: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html

方法二:sort_index()

sort_index() 方法可用于按照索引排序。默认情况下,它会按照升序对行子集进行排序。下面是一个例子:

import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Doug'],
    'age': [25, 17, 32, 29],
    'gender': ['F', 'M', 'M', 'M']
}, index=[3, 1, 2, 0])

print(df.sort_index())

输出:

      name  age gender
0    Alice   25      F
1      Bob   17      M
2  Charlie   32      M
3     Doug   29      M

sort_index() 方法也可以按照多列索引进行排序。只需将列名称作为 list 传递给 sort_index() 方法即可。下面是一个例子:

import pandas as pd

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'Doug'],
    'age': [25, 17, 32, 29],
    'gender': ['F', 'M', 'M', 'M']
}, index=[3, 1, 2, 0])

print(df.sort_index(by=['gender', 'age']))

输出:

      name  age gender
0    Alice   25      F
1      Bob   17      M
3     Doug   29      M
2  Charlie   32      M

这将首先按照 gender 进行排序,然后按照 age 进行排序。

sort_index() 方法还有其他选项,例如可以指定升序或降序排序。可以阅读 Pandas 文档以获取更多信息: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_index.html

结论

以上就是在 Pandas 中对行子集进行排序的方法。sort_values() 方法按照指定列或多列值进行排序,而 sort_index() 方法按照索引排序。两种方法都可以按照升序或降序排序,并且都具有其他可选参数,如忽略空值等。