编辑:这个问题早在 2013 年就出现了 pandas ~0.13,并被版本 0.15-0.18 之间的 boxplot 的直接支持所淘汰(根据@Cireo 的最新回答;自从有人问到这个问题后,pandas 也大大改进了对分类的支持。)
我可以boxplot
在 pandas DataFrame 中获得一个薪水列...
train.boxplot(column='Salary', by='Category', sym='')
...但是我不知道如何定义“类别”列上使用的索引顺序 - 我想根据另一个标准提供我自己的自定义顺序:
category_order_by_mean_salary = train.groupby('Category')['Salary'].mean().order().keys()
如何将我的自定义列顺序应用于箱线图列?(除了丑陋的用前缀来强制排序的列名)
'Category' 是一个字符串(真的,应该是一个 categorical,但这又回到了 0.13,其中 categorical 是一个三等公民)列有 27 个不同的值:['Accounting & Finance Jobs','Admin Jobs',...,'Travel Jobs']
. 所以它可以很容易地分解为pd.Categorical.from_array()
经检查,限制在 inside pandas.tools.plotting.py:boxplot()
,它在不允许排序的情况下转换列对象:
- pandas.core.frame.py.boxplot()是通过
- pandas.tools.plotting.py:boxplot() 实例化...
- matplotlib.pyplot.py:boxplot()实例化 ...
- matplotlib.axes.py:boxplot()
我想我可以破解一个自定义版本的 pandas boxplot(),或者深入到对象的内部。并提交增强请求。