превращение фрейма данных в словарь и сохранение всех значений - PullRequest
0 голосов
/ 27 сентября 2019
import pandas as pd
text = [list(['(1-100-133-1710)']), 'nan', 'nan']
df = pd.DataFrame({'Text': text ,
                   'IDs': ['A11','A11','C11'],
                          }) 
df
    IDs Text
0   A11 [(1-100-133-1710)]
1   A11 nan
2   C11 nan

У меня есть следующее df

Моя цель - сделать df в словаре

Поэтому я пробую следующее

to_d = dict(zip(df.IDs,df.Text))

Я получаю следующий вывод

 {'A11': 'nan', 'C11': 'nan'}

Но в этом выводе отсутствует ключ A11 и значение [(1-100-133-1710)] из строки 0 в df.В идеале я хотел бы получить следующий вывод, но дублированные ключи не допускаются в словарях python

{'A11': '[(1-100-133-1710)]', 'A11': 'nan', 'C11': 'nan'}

Поэтому вместо этого я хочу следующий вывод, который объединяет оба значения из A11 в один общий список значений, которыйдержит ту же клавишу A11

{'A11': '[[(1-100-133-1710)]', 'nan'], 'C11': 'nan'}

Как получить желаемый результат?

1 Ответ

1 голос
/ 27 сентября 2019

Так что мы можем использовать to_dict

df.groupby('IDs').Text.apply(list).to_dict()
Out[431]: {'A11': [['(1-100-133-1710)'], 'nan'], 'C11': ['nan']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...