pandas中dataframe建立一个自定义排序
时间: 2023-09-18 10:08:39 浏览: 223
pandas 透视表中文字段排序方法
5星 · 资源好评率100%
要在pandas中对dataframe进行自定义排序,可以使用`sort_values()`方法。该方法允许您指定一个或多个列以及排序顺序(升序或降序)。
下面是一个示例代码,展示如何对dataframe进行自定义排序:
```python
import pandas as pd
# 创建一个简单的dataframe
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 30, 20, 35, 27],
'salary': [5000, 7000, 3000, 8000, 6000]
})
# 定义一个自定义排序的函数
def custom_sort(row):
if row['name'] == 'Charlie':
return 0
elif row['age'] < 30:
return 1
else:
return 2
# 使用自定义排序函数对dataframe进行排序
df = df.sort_values(by=[df.apply(custom_sort, axis=1), 'name'])
# 输出排序后的dataframe
print(df)
```
在上面的示例中,我们首先创建了一个简单的dataframe,其中包含名字、年龄和薪水三列。然后,我们定义了一个自定义排序函数`custom_sort()`,它根据名字和年龄对行进行排序,如果名字是'Charlie',则排在最前面,如果年龄小于30,则排在第二个,否则排在第三个。
最后,我们使用`sort_values()`方法并指定自定义排序函数和列名进行排序。输出的结果如下:
```
name age salary
2 Charlie 20 3000
0 Alice 25 5000
4 Emily 27 6000
1 Bob 30 7000
3 David 35 8000
```
可以看到,dataframe已按照我们定义的自定义排序顺序进行排序。
阅读全文