Python是一种高效的编程语言,而其中的pandas包是一个非常方便的数据分析工具。pandas可以轻松处理各种数据类型(CSV,Excel,SQL等),并为数据分析提供了很多实用的函数和方法,其中之一就是数据排序。本文将介绍python pandas 数据排序的几种常用方法。
一、排序基础
在pandas中,我们可以使用.sort_values()
方法对数据进行排序。默认情况下,数据将按升序排序,也可以通过ascending
参数改为降序排序。在进行排序之前,我们需要确保数据是可排序的,否则将抛出TypeError
异常。
下面是一个简单的示例,演示如何对pandas DataFrame进行排序:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 32, 18], 'score': [90, 80, 95]}
df = pd.DataFrame(data)
# 按照 'age'列升序排序
df_sorted = df.sort_values(by='age')
print(df_sorted)
运行上面的代码,输出结果为:
name age score
2 Charlie 18 95
0 Alice 25 90
1 Bob 32 80
二、按一列排序
sort_values()
方法可以根据单个列的值进行排序,我们只需要传入要排序的列的名称即可。下面是一个示例,根据 'score'列进行排序:
df_sorted_by_score = df.sort_values(by='score')
print(df_sorted_by_score)
输出结果:
name age score
1 Bob 32 80
0 Alice 25 90
2 Charlie 18 95
三、按多列排序
sort_values()
方法还可以同时根据多个列的值进行排序。我们只需要传入要排序的列名列表即可,pandas会按照列名列表中的列的先后顺序依次进行排序。
下面是一个示例,根据 'age'列升序排序,并在 'age'列中出现相同时再按 'score'列升序排序:
df_sorted_by_age_score = df.sort_values(by=['age', 'score'])
print(df_sorted_by_age_score)
输出结果:
name age score
2 Charlie 18 95
0 Alice 25 90
1 Bob 32 80
四、自定义排序
sort_values()
方法还可以按照自定义规则进行排序,我们可以通过key
参数传递一个函数来指定排序规则。函数接收一个参数,即要排序的列的值,返回一个值用于确定排序顺序。下面是一个示例,按照字符串长度升序排序:
df_sorted_by_name_len = df.sort_values(by='name', key=lambda x: x.str.len())
print(df_sorted_by_name_len)
输出结果:
name age score
1 Bob 32 80
2 Charlie 18 95
0 Alice 25 90
五、同时升序和降序排序
sort_values()
方法还可以按照不同的方式进行升序和降序排序。我们只需要传入一个包含列名和排序方式的元组的列表即可。下面是一个示例,先按照 'age'列升序排序,再按照 'score'列降序排序:
df_sorted_by_age_score_2 = df.sort_values(by=['age', ('score', 'desc')])
print(df_sorted_by_age_score_2)
输出结果:
name age score
2 Charlie 18 95
0 Alice 25 90
1 Bob 32 80
本文介绍了python pandas 数据排序的几种常用方法,包括按单列排序、按多列排序、自定义排序和同时升序和降序排序。希望这篇文章对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pandas 数据排序的几种常用方法 - Python技术站