python 按照自定义顺序按中位数重新排序 Dataframe 组[重复]

rqdpfwrv  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(277)
    • 此问题在此处已有答案**:

How to sort pandas dataframe by custom order on string index(5个答案)
39分钟前就关门了。
我有一个数据集,在paramsvalue列中包含大量数据,我想计算每个params包含多少个值(用作箱线图中的标签),所以我使用mydf['params'].value_counts()来显示:

slidingwindow_250     11574
hotspots_1k_100        8454
slidingwindow_500      5793
slidingwindow_100      5366
hotspots_5k_500        3118
slidingwindow_1000     2898
hotspots_10k_1k        1772
slidingwindow_2500     1160
slidingwindow_5000      580
Name: params, dtype: int64

我有一个params中所有条目的列表,按照我希望在箱线图中显示它们的顺序排列,我尝试使用sort_index(level=myorder)来按照我的自定义顺序排列它们,但是该函数忽略了myorder,只是按字母顺序排列它们。

myorder = ["slidingwindow_100",
          "slidingwindow_250",
          "slidingwindow_500",
          "slidingwindow_1000",
          "slidingwindow_2500",
          "slidingwindow_5000",
          "hotspots_1k_100",
          "hotspots_5k_500",
          "hotspots_10k_1k"]

sizes_bp_log_df['params'].value_counts().sort_index(level=myorder)

hotspots_10k_1k        1772
hotspots_1k_100        8454
hotspots_5k_500        3118
slidingwindow_100      5366
slidingwindow_1000     2898
slidingwindow_250     11574
slidingwindow_2500     1160
slidingwindow_500      5793
slidingwindow_5000      580
Name: params, dtype: int64

我怎样才能按照我想要的顺序得到我的值计数的索引呢?
此外,我还将使用每个分布的中值作为箱线图标签的坐标,我使用sizes_bp_log_df.groupby(['params']).median()检索它;希望您建议的排序方法也能用于该任务。

相关问题