如何通过索引和列对Pandas数据框架进行排序

如何通过索引和列对Pandas数据框架进行排序

在这篇文章中,我们将讨论如何通过索引和列对Pandas数据框架进行排序。

方法1:基于索引对数据帧进行排序

我们可以使用sort_index方法根据索引和列对Pandas DataFrame进行排序。

  • 为了根据索引对DataFrame进行排序,我们需要将axis=0作为一个参数传递给sort_index方法。
  • 为了根据列名对DataFrame进行排序,我们需要将axis=1作为参数传递给sort_index方法。

语法

DataFrame_Name.sort_index(axis=0, ascending=True, inplace=False, kind=quicksort)
Python

参数

  • axis- 指定在哪个基础上排序,是基于索引还是基于列。默认情况下,它基于索引进行排序,即axe=0。
  • ascending- 指定以何种顺序排序,是升序还是降序。它接受True或False。默认情况下,它是True。
  • inplace- 它指定对DataFrame的改变是临时的还是永久的。 inplace=False表示临时的,True表示永久的。
  • kind- 指定要使用的排序算法。它接受quicksort、mergesort、heapsort等。默认情况下,如果没有提到,它是quicksort。
DataFrame col2 col1
3 150 70
2 170 55
1 160 60

这就是我们在下面的代码中用于排序的DataFrame。通过在sort_index方法中指定axis=0,我们可以对DataFrame进行排序。即使我们没有在sort_index中指定axis参数,默认情况下也会根据行来对DataFrame进行排序。

示例:

在这个例子中,DataFrame是一个基于索引标签的排序的DataFrame,这是用python语言临时排序的。

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted temporarily based on index labels
print('Sorted by index')
hostelCandidates1.sort_index(axis=0)
Python

输出

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Sorted by index

    col2     col1
1     160     60
2     170     55
3     150     70
Python

方法2:基于列的DataFrame排序

为了根据列名对DataFrame中的数据进行排序,我们需要将axis=1作为参数传递给python语言中的sort_index方法。

代码

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted temporarily based on column labels
print('Sorted by column name')
hostelCandidates1.sort_index(axis=1)
Python

输出

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Sorted by column name

    col1     col2
3     70     150
2     55     170
1     60     160
Python

示例代码对数据框架进行排序并永久保存原始数据框架的变化。

这里的排序操作是直接在原始DataFrame上进行的,由于inplace=True参数的存在,变化被永久保存。

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted permanently based on column labels
hostelCandidates1.sort_index(axis=1, inplace=True)
 
print('Modified Original DataFrame')
print(hostelCandidates1)
Python

输出

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Modified Original DataFrame
   col1  col2
3    70   150
2    55   170
1    60   160
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册