Pandas - Дамп столбцы данных кадра в словарь - PullRequest
0 голосов
/ 04 мая 2019

Я хочу вывести двухблочный фрейм данных в словарь, например:

Мой фрейм данных:

df['col1'] = pd.Series(['id_1','id_2','id_3','id_4'])
df['col2'] = pd.Series(['Name1','Name2','Name3','Name4'])

Требуемый словарь

dict = {'id_1':'Name1','id_2':'Name2','id_3':'Name3',...}

Что было бы хорошим способом сделать это без циклического перемещения по строкам?

Ответы [ 2 ]

2 голосов
/ 04 мая 2019

Другим способом является вызов dict непосредственно для массива numpy df.

Если ваш df имеет 2 точных столбца:

dict(df.values)

Если ваш df имеет более 2 столбцов, просто нарежьте 2 столбца, которые вы хотите преобразовать, и наберите dict для них:

dict(df[['col1', 'col2']].values)    

Выход:

{'id_1': 'Name1', 'id_2': 'Name2', 'id_3': 'Name3', 'id_4': 'Name4'}
2 голосов
/ 04 мая 2019

Используйте df.set_index(), чтобы установить ключи словаря, взять в качестве значений только нужный вам столбец и вызвать для него series.to_dict():

my_dict=df.set_index('col1')['col2'].to_dict()

Или вы можете использовать от zip до zip 2 столбцов и вызывать функцию dict для него.

my_dict=dict(zip(df.col1,df.col2))

Выход:

{'id_1': 'Name1', 'id_2': 'Name2', 'id_3': 'Name3', 'id_4': 'Name4'}

P.S Не используйте dict в качестве имени словаря, так как это встроенная функция Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...