📌  相关文章
📜  对 pandas DataFrame 中的行进行排序

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

对 pandas DataFrame 中的行进行排序

Pandas DataFrame 是具有标记轴(行和列)的二维大小可变、可能异构的表格数据结构。在处理数据时,我们经常需要对行和列进行某些操作。

让我们看看如何对 pandas DataFrame 中的行进行排序。

代码 #1:科学对行进行排序

# import modules
import pandas as pd
  
# create dataframe
data = {'name': ['Simon', 'Marsh', 'Gaurav', 'Alex', 'Selena'], 
        'Maths': [8, 5, 6, 9, 7], 
        'Science': [7, 9, 5, 4, 7],
        'English': [7, 4, 7, 6, 8]}
  
df = pd.DataFrame(data)
  
# Sort the dataframe’s rows by Science,
# in descending order
a = df.sort_values(by ='Science', ascending = 0)
print("Sorting rows by Science:\n \n", a)
输出:
Sorting rows by Science:
 
    English  Maths  Science    name
1        4      5        9   Marsh
0        7      8        7   Simon
4        8      7        7  Selena
2        7      6        5  Gaurav
3        6      9        4    Alex


代码 #2:先按数学排序,然后按英语排序。

# import modules
import pandas as pd
  
# create dataframe
data = {'name': ['Simon', 'Marsh', 'Gaurav', 'Alex', 'Selena'], 
        'Maths': [8, 5, 6, 9, 7], 
        'Science': [7, 9, 5, 4, 7],
        'English': [7, 4, 7, 6, 8]}
  
df = pd.DataFrame(data)
  
# Sort the dataframe’s rows by Maths
# and then by English, in ascending order
b = df.sort_values(by =['Maths', 'English'])
print("Sort rows by Maths and then by English: \n\n", b)
输出:
Sort rows by Maths and then by English: 

    English  Maths  Science    name
1        4      5        9   Marsh
2        7      6        5  Gaurav
4        8      7        7  Selena
0        7      8        7   Simon
3        6      9        4    Alex

代码#3:如果你首先想要缺失值。

import pandas as pd
  
# create dataframe
data = {'name': ['Simon', 'Marsh', 'Gaurav', 'Alex', 'Selena'], 
        'Maths': [8, 5, 6, 9, 7], 
        'Science': [7, 9, 5, 4, 7],
        'English': [7, 4, 7, 6, 8]}
df = pd.DataFrame(data)
  
  
a = df.sort_values(by ='Science', na_position ='first' )
print(a)
输出:
English  Maths  Science    name
3        6      9        4    Alex
2        7      6        5  Gaurav
0        7      8        7   Simon
4        8      7        7  Selena
1        4      5        9   Marsh

由于此示例中没有缺失值,这将产生与上述相同的输出,但按升序排序。