📜  如何在 pandas 中排序 - Python (1)

📅  最后修改于: 2023-12-03 14:52:28.179000             🧑  作者: Mango

如何在 pandas 中排序 - Python

在 pandas 中,数据排序显得非常常见,因此掌握如何在 pandas 中进行排序是很重要的。

1. 升序和降序排序

在 pandas 中,我们可以通过 sort_values() 实现升序和降序排序。

import pandas as pd

df = pd.read_csv('data.csv')

# 升序排序
df.sort_values(by='col_name', ascending=True, inplace=True)

# 降序排序
df.sort_values(by='col_name', ascending=False, inplace=True)

其中,by 参数指定要排序的列名称或行标签,ascending 参数指定是否升序排列。inplace 参数可选,如果设置为 True,则会在原始 DataFrame 上进行排序操作。

2. 多列排序

在 pandas 中,我们也可以按照多个列进行排序。可以按照以下方式进行多列排序:

import pandas as pd

df = pd.read_csv('data.csv')

# 按 col_name_1 升序,col_name_2 降序排序
df.sort_values(by=['col_name_1', 'col_name_2'], ascending=[True, False], inplace=True)

其中,by 参数传入一个列表,列表中每个元素指定要排序的列名称或行标签。ascending 参数也传入一个列表,列表中每个元素指定该列是否升序排列。

3. 按索引排序

在 pandas 中,我们也可以按照索引进行排序。我们可以在 sort_values() 中使用 index 参数指定要排序的索引名称。

import pandas as pd

df = pd.read_csv('data.csv', index_col='col_name')

# 按索引排序(升序)
df.sort_index(inplace=True)

# 按索引排序(降序)
df.sort_index(ascending=False, inplace=True)

4. 部分列排序

在 pandas 中,如果只需要按照部分列进行排序,我们可以在 by 参数中传入一个数据切片。如下:

import pandas as pd

df = pd.read_csv('data.csv')

# 只对 col_name_1 和 col_name_2 两列进行排序
df.sort_values(by=df.columns[0:2], inplace=True)

5. 自定义排序

在 pandas 中,也可以按照自定义的规则进行排序。我们可以利用 key 参数指定一个函数,这个函数将会用于生成每个值的排序关键字。例如:

import pandas as pd

df = pd.read_csv('data.csv')

# 按 col_name_1 的字符串长度排序
df.sort_values(by='col_name_1', key=lambda x: x.str.len(), inplace=True)

以上就是在 pandas 中进行排序的方法,掌握了以上技巧,你将能够更加灵活地处理数据。