保持分类变量的原始顺序

Keep the original order of the categorical variables

我想绘制分类变量的置信区间。这是我的数据:

Cluster pairs                           coef    Conf. Int. Low      Conf. Int. Upp.
Strong sci-tech – Strong science    0.656977    0.470414            0.843541
Weak science – Strong science      -0.060731   -0.238301            0.116839
Weak sci-tech – Strong science     -0.238147   -0.424907           -0.051388
Weak science – Strong sci-tech     -0.717708   -0.880094           -0.555322

我使用以下代码绘制这些间隔:

for lower, upper, y in zip(
    confidence_interval["Conf. Int. Low"],
    confidence_interval["Conf. Int. Upp."],
    range(len(confidence_interval)),
):
    plt.plot((lower, upper), (y, y), "ro-", color="blue")
    plt.yticks(
        range(len(confidence_interval)),
        list(confidence_interval["Cluster pairs"]),
    )
    plt.ylabel("Cluster pairs", fontsize=20)
    plt.xlabel("Coefficient differences", fontsize=20)
    plt.axvline(x=0, linestyle="--", color="black")

这里的问题是我的分类变量被重新排序了。我想保留原来的顺序。

我找到了解决这个问题的简单方法:

confidence_interval['cat'] = ['1','2', '3', '4', '5', '6'] 
confidence_interval = confidence_interval.sort_values('cat', ascending = False)

它给出以下输出: