我正在尝试使用 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']}
有什么办法可以实现吗?
答案 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']}