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:如何从交叉表创建条形图