pandas 多列排序
时间: 2023-10-30 12:05:32 浏览: 90
你可以使用 Pandas 的 `sort_values()` 方法对多列进行排序。你可以在 `sort_values()` 方法中传递一个包含多个列名的列表,这样就可以按照指定的列顺序进行排序。
以下是一个示例代码,演示如何对 DataFrame 中的多列进行排序:
```python
import pandas as pd
# 创建示例 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 20, 35],
'Salary': [5000, 4000, 6000, 3000]
}
df = pd.DataFrame(data)
# 按照 'Age' 列升序,然后按照 'Salary' 列降序排序
df_sorted = df.sort_values(by=['Age', 'Salary'], ascending=[True, False])
print(df_sorted)
```
输出结果为:
```
Name Age Salary
2 Charlie 20 6000
0 Alice 25 5000
1 Bob 30 4000
3 David 35 3000
```
在这个示例中,我们首先按照 'Age' 列进行升序排序,然后在 'Age' 列相同的情况下,按照 'Salary' 列进行降序排序。
相关问题
pandas多列排序删除重复项
您可以使用pandas库中的sort_values()函数进行多列排序,然后使用drop_duplicates()函数删除重复项。
示例代码:
```
import pandas as pd
# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
'age': [25, 30, 35, 25, 30],
'gender': ['female', 'male', 'male', 'female', 'male']}
df = pd.DataFrame(data)
# 多列排序
df = df.sort_values(by=['name', 'age'])
# 删除重复项
df = df.drop_duplicates(subset=['name', 'age'], keep='first')
print(df)
```
运行结果:
```
name age gender
0 Alice 25 female
1 Bob 30 male
2 Charlie 35 male
```
代码说明:
首先,我们创建了一个包含'name'、'age'和'gender'三列的DataFrame。
然后,使用sort_values()函数对'name'和'age'两列进行排序。
最后,使用drop_duplicates()函数删除重复的'name'和'age'组合,并保留第一个出现的组合。
注意,keep参数表示保留哪个重复项,'first'表示保留第一个出现的项,'last'表示保留最后一个出现的项,False表示删除所有重复项。
Pythonpandas给所有列排序
可以使用pandas的sort_values()方法来给所有列排序。例如,以下代码将DataFrame按照第一列的值进行升序排序:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'col1': [2, 1, 3], 'col2': ['b', 'a', 'c'], 'col3': [4, 6, 5]})
# 使用sort_values()方法按照第一列的值进行升序排序
df_sorted = df.sort_values('col1')
print(df_sorted)
```
输出结果为:
```
col1 col2 col3
1 1 a 6
0 2 b 4
2 3 c 5
```
如果想要按照多列进行排序,可以在sort_values()方法中传入多个列名,例如:
```python
# 按照第一列和第三列的值进行升序排序
df_sorted = df.sort_values(['col1', 'col3'])
print(df_sorted)
```
输出结果为:
```
col1 col2 col3
1 1 a 6
0 2 b 4
2 3 c 5
```
阅读全文