【发布时间】:2013-03-10 14:29:12
【问题描述】:
编辑:这个问题早在 2013 年就出现在 pandas ~0.13 中,并且被直接支持 boxplot 的版本在 0.15-0.18 之间(根据@Cireo's late answer;自有人问起,pandas 大大改进了对分类的支持)而被淘汰。 /p>
我可以在 pandas DataFrame 中获得薪水列的boxplot...
train.boxplot(column='Salary', by='Category', sym='')
...但是我不知道如何定义列“类别”上使用的索引顺序 - 我想提供我自己的自定义顺序,根据另一个标准:
category_order_by_mean_salary = train.groupby('Category')['Salary'].mean().order().keys()
如何将我的自定义列顺序应用于箱线图列? (除了丑陋的用前缀来强制排序的列名)
'Category' 是一个字符串(实际上,应该是一个分类,但这是在 0.13 中,分类是三等公民)列有 27 个不同的值:['Accounting & Finance Jobs','Admin Jobs',...,'Travel Jobs']。所以可以很容易地用pd.Categorical.from_array()分解它
经过检查,限制在 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(),或者深入到对象的内部。并提交增强请求。
【问题讨论】:
标签: python pandas boxplot categorical-data