从数据框的两列中提取值以构成键和值的字典

时间:2019-11-18 10:46:38

标签: python pandas dictionary

我有一个包含几列数据的数据框。如果有两列,则为“反应”和“丰度”。这些将多次显示,例如:

    reaction     product abundance 1.0 1.5 2.0 2.5 3.0 3.5 4.0  ...  \
0    023Na-a  010020.tot       1   0   0   0   0   0   0   0  ...   
1    023Na-a  012023.tot       1  0   0   0   0   0   0   0  ...   
2    035Cl-a  010022.tot       0.3775   0   0   0   0   0   0   0  ...   
3    035Cl-a  008018.tot       0.3775   0   0   0   0   0   0   0  ...   
4    037Cl-a  013025.tot       0.1195   0   0   0   0   0   0   0  ...   
..       ...         ...       ...  ..  ..  ..  ..  ..  ..  ..  ...   

对于每个反应实例,丰度都是相同的。我想创建一个有关反应和丰度的字典:

dict = {'023Na-a': 1, 
        '035Cl-a': 0.3775, 
        '037Cl-a': 0.1195} 

1 个答案:

答案 0 :(得分:2)

import pandas as pd

data = [['023Na-a', '010020.tot', 1, '...'], 
        ['023Na-a', '012023.tot', 1, '...'], 
        ['035Cl-a', '010022.tot', 0.3775, '...'], 
        ['035Cl-a', '008018.tot', 0.3775, '...'], 
        ['037Cl-a', '013025.tot', 0.1195, '...']]

df = pd.DataFrame(data, columns=['reaction', 'product', 'abundance', 'etc'])

df[['reaction', 'abundance']].set_index('reaction').to_dict()['abundance']

结果

{'023Na-a': 1.0, '035Cl-a': 0.3775, '037Cl-a': 0.1195}