2016-03-07 2 views
1

У меня есть панд DataFrame нижеПреобразование панды DataFrame в словарь, используя несколько столбцов для ключа

From_email,To_email,email_count 
[email protected],[email protected],1 
[email protected],[email protected],1 
"<""[email protected]""[email protected]@enron.com>",[email protected],1 

Я хотел бы изменить его в словарь в формате

hrc_dict = {('[email protected]', '[email protected]'): 1, 
      ('[email protected]', '[email protected]'): 1, 
      ('<"[email protected]"[email protected]@enron.com>', '[email protected] '): 1} 

Что такое лучший способ сделать это?

ответ

2

Вы можете использовать dict comprehension, чтобы создать dict от DataFrame.

df = DataFrame({ 
    'From_email': ['[email protected]', '[email protected]', '<"[email protected]"[email protected]@enron.com>'], 
    'To_email': ['[email protected]', '[email protected]', '[email protected]'], 
    '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)

+0

Спасибо. Это сработало. – AJV

+0

@AJV Если это сработало, подумайте о том, чтобы отметить ответ, чтобы помочь тем, кто наткнется на это позже. – Suever

Смежные вопросы