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

    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}

最佳答案

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}

关于python - 从数据框的两列中提取值以构成键和值的字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58912802/

10-14 18:28
查看更多