从数据框列创建自定义词典?

时间:2021-06-15 20:56:22

标签: python pandas dataframe

我正在尝试使用 python 制作用于文本分析的自定义词典。我有一个带有情感二元分类的数据框。如果值为 1,我想将列名放入词典中的每一行,并用 ['column name'] 包裹它们。例如,

我有一个示例数据框,如下所示:

en  Positive    Negative    Anger   Anticipation    Disgust Fear    Joy Sadness Surprise    Trust
abacus  0   0   0   0   0   0   0   0   0   1   0
abandon 0   1   0   0   0   1   0   1   0   0   0
abandoned   0   1   1   0   0   1   0   1   0   0   0

预期输出为:

{'abacus': ['trust'], 'abandon': ['fear', 'negative', 'sadness'],
               'abandoned': ['anger', 'fear', 'negative', 'sadness']}

有什么办法可以实现吗?

1 个答案:

答案 0 :(得分:1)

您可以对每一行使用 lambda 函数,然后将结果转换为 dict,如下所示:

>>> data.apply(lambda x: list(data.columns[x==1]), axis=1).to_dict()
{'abacus': ['Trust'],
 'abandon': ['Negative', 'Fear', 'Sadness'],
 'abandoned': ['Negative', 'Anger', 'Fear', 'Sadness']}