📅  最后修改于: 2023-12-03 14:52:28.179000             🧑  作者: Mango
在 pandas 中,数据排序显得非常常见,因此掌握如何在 pandas 中进行排序是很重要的。
在 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 上进行排序操作。
在 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
参数也传入一个列表,列表中每个元素指定该列是否升序排列。
在 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)
在 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)
在 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 中进行排序的方法,掌握了以上技巧,你将能够更加灵活地处理数据。