Pandas 如何根据列名或行索引对DataFrame进行排序
许多应用程序可以通过列名或行索引对pandas DataFrame进行排序以获得好处。例如,为了展示销售如何随时间变化,我们可以通过日期对销售数据的DataFrame进行排序。在Python中,我们有一些内置函数- DataFrame(),sort_index()和sort_values(),可以用来根据列名或行索引对Pandas DataFrame进行排序。
语法
以下是示例中使用的语法-
DataFrame(var_name, colums= ['col1', 'col2', and so on], index= ['1', '2', and so on])
DataFrame 是 pandas 模块的一个类,用于定义不同行和列的二维结构。
sort_index()
sort_index是通过索引标签对系列进行排序。该方法以升序和降序的方式对pandas数据框进行排序。
sort_index(axis = 1)
这个sort_index
函数接受一个名为axis = 1
的参数来对列进行排序。换句话说,我们可以说axis = 1
指定了列。
sort_values(by=["col1","col2","col3"])
sort_value方法是通过对项或系列按升序排序来定义的。上面的表示方式接受三个列作为参数来对它们的项或系列进行排序。
sort_values(by=["row1","row2","row2"])
上述表示接受三行来按照列表数据类型的技术进行排序。
示例1
在下面的示例中,我们将通过导入名为pandas的模块来启动程序。将其对象引用命名为pd。然后使用列表推导式创建员工数据并将其存储在变量Emp中。然后使用列和行的列表元组创建DataFrame对象并将其存储在变量info中。接下来,提及变量info并获取数据的表格结构。
import pandas as pd
# List of Tuples
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 object from list of tuples using column and index
info = pd.DataFrame(Emp, columns =['Name', 'Age',
'Place', 'Designation','Gender'],
index =[ '105', '109', '110', '104'])
# Show the dataframe
info
输出
示例2
在下面的示例中, 下面的代码按照代码的顺序使用下一个终端进行排序。 然后使用内置方法sort_index()将行按升序排序并将其存储在变量sort_idx中。最后,使用变量sort_idx根据给定的代码获取处理过的数据。
# sort the index row
sort_idx = info.sort_index()
sort_idx
输出
示例3
下面的示例中, 下面的代码按照上面的代码顺序使用下一个终端。 在这里,我们将根据列排序实现程序。然后导入pandas启动程序(不一定需要)。接下来,使用内置方法sort_index()将列按升序排序。然后只需编写名为sort_col的变量,以以另一种形式获取结果。
# sort the column
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以获得表格输出作为结果。
# Sort DataFrame rows based on multiple columns
import pandas as pd
# create the dictionary
col = {"X" : [40, 10, 60, 20], "Y":[11, 48, 92, 16], "Z":[32,1,26,5]}
df = pd.DataFrame(col)
#Mention the row for sorting
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的内置方法来接受以下参数-nbsp;-
by = [‘P’,’Q’,’R’]:关键字by设置行的数量,即P,Q和R。
axis = 1:识别列。
最后,通过变量sorted_row打印结果。
# Sort Dataframe based on multiple rows
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对列名或行索引进行排序的不同方法。第一个示例解释了行和列的简单表格结构,而第二个和第三个示例按顺序完成了数据集的有意义的表示。第四个示例使用字典技术来创建多列的数据,而第五个示例使用列表数据类型来创建多行的数据,并生成了不同的输出结果。