Pandas:如何对交叉表中的值进行排序


您可以使用以下方法对 Pandas 交叉表中的行或列进行排序:

方法 1:按行值对交叉表进行排序

 p.d. crosstab (df. col1 , df. col2 ). sort_index (axis= 0 , ascending= False )

方法 2:按列值对交叉表进行排序

 p.d. crosstab (df. col1 , df. col2 ). sort_index (axis= 1 , ascending= False )

以下示例展示了如何在实践中通过以下 pandas 交叉表使用这些方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#create crosstab to display count of players by team and position
my_crosstab = pd. crosstab (df. team , df. position )

#view crosstab
print (my_crosstab)

FG position
team          
AT 12
B 3 1
C 2 2

示例 1:按行值对交叉表进行排序

我们可以使用以下语法根据团队列值按降序(Z 到 A)对交叉表行进行排序:

 #create crosstab with rows sorted from Z to A
p.d. crosstab (df. team , df. position ). sort_index (axis= 0 , ascending= False )

position F G
team		
C 2 2
B 3 1
AT 12

请注意,交叉表行现在按团队值按相反的字母顺序排序。

注意crosstab()函数默认按字母顺序(A 到 Z)显示交叉表行值。

示例 2:按列值对交叉表进行排序

我们可以使用以下语法根据团队列值按降序(Z 到 A)对交叉表列进行排序:

 #create crosstab with columns sorted from Z to A
p.d. crosstab (df. team , df. position ). sort_index (axis= 1 , ascending= False )

G F position
team		
At 2 1
B 1 3
C 2 2

请注意,交叉表列现在按位置值按相反的字母顺序排序。

注意crosstab()函数默认按字母顺序(A 到 Z)显示交叉表列值。

注意:您可以在此处找到 pandas crosstab()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何创建带有百分比的交叉表
Pandas:如何在 crosstab() 函数中使用 aggfunc
Pandas:如何从交叉表创建条形图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注