按计数而不是按字母顺序排列图形

2024-04-25 06:48:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据如下:

        channel    ter   Id
0       BWM        A     6
1       IND        A     15  
2       RIA        C     2
3       BWM        B     7
4       IND        B     5  
5       RIA        A     4
6       BWM        C     3
7       IND        C     33  
8       RIA        B     21

当我画的时候:

^{pr2}$

它是按x轴上的字母顺序排列的,所以频道是BWM->;IND->;RIA。 但是,我需要的是按count(即Id值)对它进行排序,所以IND是第一个。在

我试着在barplot()内添加order = df['channel'].value_counts().index,但没用。在

我也希望有能力根据计数,以及每个频道,但不必太努力,如果太多。在

谢谢你!在


Tags: 数据gtid排序count字母channelorder
1条回答
网友
1楼 · 发布于 2024-04-25 06:48:55

因为每个通道都包含多个ID,所以简单地“按ID排序”并不是定义良好的;您必须指定一些东西,比如ID的总和、组内最大的ID或其他值。如果你想按最大的ID和排序

sns.barplot(x='channel', y='Id', hue='ter', data=df, palette='Set2', order=df.groupby('channel').Id.sum().sort_values(ascending=False).index)

完成任务。在

相关问题 更多 >