如何从pandas数据框创建字典字典的字典

时间:2018-01-11 13:17:35

标签: python pandas dictionary

我有一个像这样的pandas数据框:

Copy    sequence    type    ntv
1        1           A      0.45
1        1           R2     0.878
1        1           R3     1.234
1        2           A      -7.890
1        2           R2     2.345
1        2           R3     -0.871
2        1           A      -0.098
2        1           R2     -0.007
2        1           R3     9.089
2        2           A      1.567
2        2           R2     -0.764
2        2           R3     17.908
3        1           A      4.980
3        1           R2     2.34
3        1           R3     1.280
3        2           A      -9.189
3        2           R2     -7.09
3        2           R3     -0.009

数据框由第3列中的3个副本组成。这些副本中的每一个都包含相同的元素,即它们各有2个序列,它们又由3种不同的类型组成:A,R2和R3。

如何创建字典字典的字典,如下所示:

d1 = {sequence:{type:{Copy:ntv}}}

例如,如果我说:

d2 = d1[1][‘R2’]
rank = sorted(d2.items(), key =operator.itemgetter(1))
pprint(rank)

它应打印出一个字典(如下所示),其中所有ntv值已经排序,表明哪个拷贝号具有R2类型序列1的最低或最高ntv值。

{2: -0.007,
 1: 0.878, 
 3: 2.34}

此外,如果您对如何解决问题有更好的想法,我期待您的建议。提前致谢!

2 个答案:

答案 0 :(得分:3)

你可以使用collections.defaultdict

沿着这些方向做
  <Modal isVisible={this.state.showPopupModal} onBackdropPress={() => this.hideModal()} >
    ..
 </Modal>

答案 1 :(得分:0)

首先,制作字典

df_dict = dict(zip(df.sequence, df.ntv))

然后对df_dict进行排序

sorted_x = sorted(df_dict.items(), key=operator.itemgetter(1))