2017-04-04 42 views
1

我有一个数据帧在熊猫这样的:箱线图的列内的矢量的熊猫字段

    rank         array_for_box_plot \ 
sequence                 
    1   1.111111  [0, 1, 1, 1, 2, 0, 1, 4, 4, 0, 1, 0, 2, 0, 2, ... 

    2   0.714286   [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 3, 1] 
    3   0.900000      [2, 1, 2, 0, 2, 0, 1, 1, 0, 0] 
    4   1.300000      [3, 2, 2, 0, 2, 1, 0, 2, 1, 0] 
    5   0.111111      [0, 1, 0, 0, 0, 0, 0, 0, 0] 
    6   0.444444      [2, 0, 0, 0, 1, 1, 0, 0, 0] 

我将绘制的箱线图,其中在x轴我应该有相对“序列”和用于箱线图每个“阵列”列'array_for_box_plot'

你能帮助我吗?

感谢

回答

2

尝试类似如下:

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame(columns=['frequency', 'array_for_box_plot'], data=data) 

fig = plt.figure(1, figsize=(15, 15)) 
ax = fig.add_subplot(111) 
boxplot = ax.boxplot(df.array_for_box_plot.values.tolist()) 

其中产量: enter image description here

使用的数据:

data = [ 
    [1, [0, 1, 1, 1, 2, 0, 1, 4, 4, 0, 1, 0, 2, 0, 2]], 
    [2, [1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 3, 1]], 
    [3, [2, 1, 2, 0, 2, 0, 1, 1, 0, 0]], 
    [4, [3, 2, 2, 0, 2, 1, 0, 2, 1, 0]], 
    [5, [0, 1, 0, 0, 0, 0, 0, 0, 0]], 
    [6, [2, 0, 0, 0, 1, 1, 0, 0, 0]], 
] 
+0

不,因为我只是按照abo解释的顺序将数据放在数据框中五个。你知道是否有一个函数或调用熊猫数据框中的bloxplot数组? – user7311536

+0

认真@ user7311536他完全解决了你的问题。你甚至注意到代码? –

+0

是的,我很抱歉。太棒了。非常感谢@Jan – user7311536

0

如果你执着于数据结构,那么你需要的每一行进行迭代,并建立自己的情节:Example of row iteration.

但是,这不是很熊猫式的。更大熊猫样式的解决办法是重复rank在箱线图数据的每个观察然后按rank