📌  相关文章
📜  按两列或更多列对 Pandas DataFrame 进行排序

📅  最后修改于: 2022-05-13 01:55:15.461000             🧑  作者: Mango

按两列或更多列对 Pandas DataFrame 进行排序

在本文中,我们的基本任务是根据两列或多列对数据框进行排序。为此,使用 Dataframe.sort_values() 方法。此方法根据函数内部传递的列按升序或降序对数据框进行排序。首先,让我们创建一个数据框:

Python3
#import python library
import pandas as pd
  
# dictionary
data_frame = {
       'name': ['Akash Kumar', 'Diksha Tewari',
                'Bhawna Gourh', 'Ayush Sharma'],
        'age': [20, 21, 22, 23],
        'favorite_color': ['black', 'Yellow', 
                           'Pink', "Orange"],
        'grade': [88, 92, 95, 70]
}
  
# create data frame with indexing
df = pd.DataFrame(data_frame, 
                  index = [1, 2, 3, 4])
  
# printing the dataframe
df


Python3
# sort the dataframe
# based on age and grade
df.sort_values(['age', 'grade'],
              ascending = [False, True])


Python3
# sort the dataframe based 
# on name and favorite_colr
df.sort_values(['name', 'favorite_color'], 
               ascending=[True,
                          True])


Python3
df.sort_values(["grade", "favorite_color"], 
               axis = 0, ascending = True, 
               inplace = True,
               na_position ='first')
  
# printing the dataframe
df


输出:

数据框

示例 1:根据“年龄”(降序)和“等级”(升序)列对数据框进行排序。

Python3

# sort the dataframe
# based on age and grade
df.sort_values(['age', 'grade'],
              ascending = [False, True])

输出:

根据年龄和年级排序的数据框

示例 2:根据 'name' 和 'favorite_color' 列按升序对 Dataframe 进行排序。

Python3

# sort the dataframe based 
# on name and favorite_colr
df.sort_values(['name', 'favorite_color'], 
               ascending=[True,
                          True])

输出:

根据名称和颜色排序的数据框

示例 3:基于 'grade' 和 'favorite_color' 列的 Dataframe 就地排序。在就地排序的情况下,Dataframe.sort_values() 方法不会返回任何内容,它会在实际数据帧中执行更改。

Python3

df.sort_values(["grade", "favorite_color"], 
               axis = 0, ascending = True, 
               inplace = True,
               na_position ='first')
  
# printing the dataframe
df

输出:

根据等级和喜欢的颜色排序的数据框