dataframe排序
时间: 2023-07-01 11:09:46 浏览: 41
在 Pandas 中,可以使用 `sort_values()` 方法对 DataFrame 进行排序。该方法可以按照指定的列或多列对 DataFrame 进行排序,并且可以指定升序或降序排列。
以下是一个示例代码,展示如何对 DataFrame 按照某一列进行升序排序:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 18, 40],
'salary': [5000, 8000, 4000, 10000]})
# 按照 'age' 列进行升序排序
df_sorted = df.sort_values('age', ascending=True)
# 打印排序后的 DataFrame
print(df_sorted)
```
输出结果如下:
```
name age salary
2 Charlie 18 4000
0 Alice 25 5000
1 Bob 30 8000
3 David 40 10000
```
在上面的代码中,我们首先创建了一个 DataFrame,然后使用 `sort_values()` 方法对其按照 'age' 列进行升序排序,并将结果保存在 `df_sorted` 变量中。最后,使用 `print()` 函数打印排序后的 DataFrame。
需要注意的是,如果要按照多列进行排序,可以在 `sort_values()` 方法中传入一个列表,列表中每个元素表示一个排序依据。例如,以下代码展示了如何先按照 'age' 列进行排序,然后在 'salary' 列相同的情况下按照 'name' 列进行排序:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David', 'Alice'],
'age': [25, 30, 18, 40, 20],
'salary': [5000, 8000, 4000, 10000, 6000]})
# 按照多列进行排序
df_sorted = df.sort_values(['age', 'salary', 'name'], ascending=[True, False, True])
# 打印排序后的 DataFrame
print(df_sorted)
```
输出结果如下:
```
name age salary
2 Charlie 18 4000
0 Alice 20 6000
4 Alice 20 6000
1 Bob 30 8000
3 David 40 10000
```
在上面的代码中,我们在 `sort_values()` 方法中传入了一个列表,列表中包含三个元素,分别表示按照 'age'、'salary' 和 'name' 列排序。同时,我们还传入了一个列表,用于指定每个排序依据的排序方式(升序或降序)。在本例中,我们按照 'age' 列升序排序,按照 'salary' 列降序排序,然后在 'salary' 列相同时按照 'name' 列升序排序。