我可以将字典的值分成多列并且仍然可以绘制它们吗?

时间:2017-12-21 17:52:20

标签: python pandas dataframe plot seaborn

我想将字典的值分成多列,并且仍然能够绘制它们。此时所有值都在一列中。 具体来说,我想在值列表中拆分所有不同的值。并使用最长列表中的值数量作为列数。因此,对于所有较短的列表,我想用“NA”填补空白,所以我仍然可以在海底拍摄它。

这是我使用的词典:

dictio = {'seq_7009': [6236.9764, 6367.049999999999], 'seq_418': [3716.3642000000004, 3796.4124000000006], 'seq_9143_unamb': [4631.958999999999], 'seq_2888': [5219.3359, 5365.4089], 'seq_1101': [4287.7417, 4422.8254], 'seq_107': [5825.695099999999, 5972.8073], 'seq_6946': [5179.3118, 5364.420900000001], 'seq_6162': [5531.503199999999, 5645.577399999999], 'seq_504': [4556.920899999999, 4631.959], 'seq_3535': [3396.1715999999997, 3446.1969999999997, 5655.896546], 'seq_4077': [4551.9108, 4754.0073,4565.987654,5668.9999976], 'seq_1626_unamb': [3724.3894999999998]}

这是数据帧的代码:

  df = pd.Series(dictio)
 test=pd.DataFrame({'ID':df.index, 'Value':df.values})


seq_107     [5825.695099999999, 5972.8073]
seq_1101    [4287.7417, 4422.8254]
seq_1626_unamb  [3724.3894999999998]
seq_2888    [5219.3359, 5365.4089]
seq_3535    [3396.1715999999997, 3446.1969999999997, 5655....
seq_4077    [4551.9108, 4754.0073, 4565.987654, 5668.9999976]
seq_418     [3716.3642000000004, 3796.4124000000006]
seq_504     [4556.920899999999, 4631.959]
seq_6162    [5531.503199999999, 5645.577399999999]
seq_6946    [5179.3118, 5364.420900000001]
seq_7009    [6236.9764, 6367.049999999999]
seq_9143_unamb  [4631.958999999999]

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

Value列转换为列表列表,然后将其重新加载到新的数据框中。然后,致电plot。像这样的东西 -

df = pd.DataFrame(test.Value.tolist(), index=test.ID)
df

                        0          1            2            3
ID                                                            
seq_107         5825.6951  5972.8073          NaN          NaN
seq_1101        4287.7417  4422.8254          NaN          NaN
seq_1626_unamb  3724.3895        NaN          NaN          NaN
seq_2888        5219.3359  5365.4089          NaN          NaN
seq_3535        3396.1716  3446.1970  5655.896546          NaN
seq_4077        4551.9108  4754.0073  4565.987654  5668.999998
seq_418         3716.3642  3796.4124          NaN          NaN
seq_504         4556.9209  4631.9590          NaN          NaN
seq_6162        5531.5032  5645.5774          NaN          NaN
seq_6946        5179.3118  5364.4209          NaN          NaN
seq_7009        6236.9764  6367.0500          NaN          NaN
seq_9143_unamb  4631.9590        NaN          NaN          NaN

df.plot()

enter image description here