2017-04-04 38 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