📜  pandas 按索引列 - Python (1)

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

Pandas按索引列排序

Pandas 是一个数据处理库,提供了许多用于数据处理的工具。其中一个重要的工具是排序。在数据分析中,经常需要按特定的列排序,以获得更好的分析结果,或者在表格显示中按照特定的列进行排序。

在 Pandas 中,我们可以使用 sort_values() 方法按照列名或列索引进行排序。本篇文章将介绍如何按索引列进行排序。

按单个索引列排序

使用 sort_values() 方法按照单个索引列(即单个列名或单个列索引)进行排序。例如:

import pandas as pd

# 创建数据集
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 20, 30, 35],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)

# 按照 age 列排序
df_sorted = df.sort_values('age')
print(df_sorted)

输出结果为:

      name  age gender
1      Bob   20      M
0    Alice   25      F
2  Charlie   30      M
3    David   35      M

在上面的例子中,我们按照 age 列进行了升序排序。

如果要进行降序排序,可以在 sort_values() 方法中加入参数 ascending=False:

# 按照 age 列降序排序
df_sorted = df.sort_values('age', ascending=False)
print(df_sorted)

输出结果为:

      name  age gender
3    David   35      M
2  Charlie   30      M
0    Alice   25      F
1      Bob   20      M

在上面的例子中,我们按照 age 列进行了降序排序。

按多个索引列排序

有时候,我们需要按照多个索引列进行排序。可以使用 sort_values() 方法,并传递一个列表作为参数,列表中的元素即为要按照的列名或列索引。例如:

# 按照 age 和 gender 列排序
df_sorted = df.sort_values(['age', 'gender'])
print(df_sorted)

输出结果为:

      name  age gender
1      Bob   20      M
0    Alice   25      F
2  Charlie   30      M
3    David   35      M

在上面的例子中,我们按照 age 和 gender 列进行了升序排序。

如果要先按照 age 列升序排序,再按照 gender 列降序排序,可以这样做:

# 按照 age 升序和 gender 降序排序
df_sorted = df.sort_values(['age', 'gender'], ascending=[True, False])
print(df_sorted)

输出结果为:

      name  age gender
1      Bob   20      M
0    Alice   25      F
2  Charlie   30      M
3    David   35      M

在上面的例子中,我们按照 age 列进行了升序排序,然后按照 gender 列进行了降序排序。

结论

在 Pandas 中,我们可以使用 sort_values() 方法按照单个索引列或多个索引列进行排序。在 sort_values() 方法中,可以指定升序或降序排序,并可以对每个要排序的列分别指定升序或降序排序。