使用多个列将Pandas DataFrame转换为Dictionary

时间:2016-03-07 21:50:51

标签: python pandas

我有一个pandas DataFrame,如下所示

From_email,To_email,email_count
110165.74@compuserve.com,klay@enron.com,1
2krayz@gte.net,klay@enron.com,1
"<""d@piassick"".@enron@enron.com>",klay@enron.com,1

我想将其更改为以下格式的字典

hrc_dict = {('110165.74@compuserve.com', 'klay@enron.com'): 1,
            ('2krayz@gte.net', 'klay@enron.com'): 1, 
            ('<"d@piassick".@enron@enron.com>', 'klay@enron.com '): 1}

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用dict comprehensiondict创建DataFrame

df = DataFrame({
    'From_email': ['110165.74@compuserve.com', '2krayz@gte.net', '<"d@piassick".@enron@enron.com>'],
    'To_email': ['klay@enron.com', 'klay@enron.com', 'klay@enron.com'],
    'email_count': [1, 1, 1]})

d = {tuple(x[:2]):x[2] for x in df[['From_email', 'To_email', 'email_count']].values}

首先,我们明确地以所需的顺序从数据框中获取必要的列。然后遍历行和每行,从电子邮件地址(前两列)创建一个元组,并将其用作键。该值只是第3列(email_count