首页 > 解决方案 > 遍历数据框,根据值创建字典

问题描述

我正在尝试遍历 pandas 中的数据框并根据列中的值生成字典。我有兴趣在每次列中的值等于 3 时捕获列名。给定下面的数据框:

Sample         Variable 1    Variable 2    Variable 3
Sample 1          1                3             1
Sample 2          3                0             3
Sample 3          3                3             3
Sample 4          2                1             3

我有兴趣创建一本给我的字典:

{'Sample 1': [Variable 2], 'Sample 2': [Variable 1, Variable3], 'Sample 3': [Variable 1, Variable 2, Variable 3], 'Sample 4': [Variable3]}

标签: pythonpandasdictionarydataframeiteration

解决方案


您可以通过将 DataFrame 转换为 adict然后应用字典理解来获得等于 3 的变量列表来做到这一点。

df_dict = df.to_dict(orient="index")
{k: [k1 for (k1, v1) in v.items() if v1 == 3] for (k, v) in df_dict.items()}

推荐阅读