如何根据列名或行索引对 Pandas DataFrame 进行排序?

pandaspythonserver side programmingprogramming

许多应用程序都受益于按列名或行索引对 Pandas DataFrame 进行排序。例如,为了显示销售情况随时间的变化,我们可以按日期对销售数据的 DataFrame 进行排序。在 Python 中,我们有一些内置函数 - DataFrame()、sort_index() 和 sort_values(),可用于根据列名或行索引对 Pandas DataFrame 进行排序。

语法

示例中使用了以下语法 -

DataFrame(var_name, colums= ['col1', 'col2', 等等], index= ['1', '2', 等等])

DataFrame 是 pandas 模块库,定义不同行和列的 2D 结构。

sort_index()

sort_index 按索引标签对系列进行排序。此方法对 pandas 数据框进行排序

按升序和降序排序。

sort_index(axis = 1)

此 sort_index 接受名为 axis = 1 的参数,该参数对列顺序进行排序。换句话说,我们可以说 axis = 1 指定列。[示例 3]

sort_values(by=["col1","col2","col3"])

sort_value 方法通过按升序对项目或系列进行排序来定义。上述表示接受三列作为参数来对其项目或系列进行排序。

sort_values(by=["row1","row2","row2"])

上述表示接受三行,使用列表数据类型技术对其项目或系列进行排序。

示例 1

在下面的示例中,我们将通过导入名为 pandas 的模块来启动程序。以 pd 作为其对象引用。然后使用列表推导创建员工数据并将其存储在变量 Emp 中。然后使用列和行从元组列表创建一个对象 DataFrame 并将其存储在变量 info 中。接下来,输入变量信息并获取数据的表格结构。

import pandas as pd
# 元组列表
Emp = [('Arun', 24, 'Uttrakhand', 'Tester', 'Male'),
   ('Shyam', 23, 'West Bengal', 'SDE-1', 'Male'),
   ('Raghav', 37, 'Maharastra', 'SDE-3', 'Male'),
   ('Jayanti', 29, 'Kerala', 'Customer Support','Female')]
# 使用列和索引从元组列表中获取 Dataframe 对象
info = pd.DataFrame(Emp, columns =['Name', 'Age',
   'Place', 'Designation','Gender'],
   index =[ '105', '109', '110', '104'])
# 显示数据框
info

输出

示例 2

在下面的示例中,下面的代码使用下一个终端遵循代码的顺序。然后使用内置方法 sort_index() 按升序对行进行排序并将其存储在变量 sort_idx 中。最后,使用变量sort_idx根据给定的代码获取处理后的数据。

# 对索引行进行排序
sort_idx = info.sort_index()
sort_idx

输出

示例3

在下面的示例中,下面的代码使用下一个终端遵循上述代码的顺序。 在这里我们将实现基于列排序的程序。然后导入pandas以启动程序(不一定需要)。接下来,使用内置方法sort_index()按升序对列进行排序。然后只需编写名为sort_col的变量即可以另一种形式获取结果。

# 对列进行排序
import pandas as pd
sort_col = info.sort_index(axis = 1)
sort_col

输出

示例 4

在下面的示例中,通过导入名为pandas的模块来启动程序,该模块将对象引用设置为pd。然后使用字典数据类型设置三列,即X,Y和Z,以将其存储在变量col中。接下来,使用pandas模块的DataFrame并将其存储在名为df的新变量中。现在使用内置方法 sort_values 按升序对系列或项目后面的行进行排序,并将其存储在变量 sorted_df 中。然后只需编写 sorted_df 即可获得表格输出结果。

# 根据多列对 DataFrame 行进行排序
import pandas as pd

# 创建字典
col = {"X" : [40, 10, 60, 20], "Y":[11, 48, 92, 16], "Z":[32,1,26,5]}
df = pd.DataFrame(col)

# 提及要排序的行
sorted_df=df.sort_values(by=["X","Y","Z"])
sorted_df

输出

示例 5

在下面的示例中,通过导入名为 pandas 的模块来启动程序。获取名为 pd 的对象引用,稍后将在内置方法 sort_values 中使用。然后创建列表,该列表包含三个不同行项的数据,即 P、Q 和 R,并将其存储在变量 list1 中。接下来,使用 pandas 模块的 DataFrame,该模块接受两个参数 - list1(使用数据的前一个变量名称)和 index(此参数使用内置方法 list 设置所有列的值)。继续使用内置方法 sort_values,该方法接受以下参数 -

by=['P','Q','R']:关键字 by 设置行数,即 P、Q 和 R。

axis = 1:标识列。

最后,我们在变量 sorted_row 的帮助下打印结果。

# 根据多行对 Dataframe 进行排序
import pandas as pd
list1 = [(5,40,3,2),(11,4,12,6),(13,91,16,5)]
df = pd.DataFrame(list1, index=list('PQR'))
sorted_row = df.sort_values(by=['P','Q','R'],axis=1)
sorted_row

输出

结论

我们讨论了使用 Pandas Dataframe 对列名或行索引进行排序的不同方法。第一个例子解释了行和列的简单表格结构,而第二个和第三个例子遵循序列顺序来完成数据集的有意义的表示。第四个示例使用字典技术为多列创建数据,而第五个示例使用列表数据类型为多行创建数据并生成不同的输出。


相关文章