编辑:这个问题出现在pandas~0.13中,在0.15-0.18版本之间的某个地方被直接支持淘汰(根据@Cireo's late answer)
我可以在pandas数据框中获得工资列的boxplot
。。。
train.boxplot(column='Salary', by='Category', sym='')
…但是我无法确定如何定义列“Category”上使用的索引顺序-我想根据另一个条件提供自己的自定义顺序:
category_order_by_mean_salary = train.groupby('Category')['Salary'].mean().order().keys()
如何将自定义列顺序应用于boxplot列?(除了使用前缀对列名进行丑陋的模糊处理以强制排序之外)
“Category”是一个字符串(实际上,应该是一个categorical,但这可以追溯到0.13,其中categorical是一个三级公民)列,包含27个不同的值:['Accounting & Finance Jobs','Admin Jobs',...,'Travel Jobs']
。所以它可以很容易地用pd.Categorical.from_array()
分解
检查时,限制在pandas.tools.plotting.py:boxplot()
内,它转换列对象而不允许排序:
我想我可以破解定制版本的pandas boxplot(),或者深入到对象的内部。并提交增强请求。
如果没有一个有效的例子,很难说如何做到这一点。我的第一个猜测是添加一个整数列和您想要的顺序。
一个简单的,暴力的方法是每次添加一个方框图。
请注意,pandas现在可以创建分类列。如果您不介意让所有列都显示在图形中,或者适当地对它们进行修剪,可以执行以下操作:
http://pandas.pydata.org/pandas-docs/stable/categorical.html
最近的熊猫似乎也允许
positions
从帧到轴的整个过程。实际上我也被同一个问题困住了。我做了一个地图,重置了xticklabels,代码如下:
相关问题 更多 >
编程相关推荐