熊猫-将数据框列转储到字典中

时间:2019-05-04 03:59:09

标签: python pandas dataframe dictionary

我想像这样将两列数据帧转储到字典中:

我的数据框:

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 个答案:

答案 0 :(得分:2)

使用df.set_index()设置字典键,仅将所需的列作为值,然后在其上调用series.to_dict()

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

或者您可以使用zipzip 2列并在其上调用dict函数。

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

输出:

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

PS 请勿使用dict作为字典名称,因为它是python内置函数。

答案 1 :(得分:2)

另一种方法是直接在dict的numpy数组上调用df

如果您的df的确切两列是

dict(df.values)

如果您的df有两列以上,只需切片要转换的两列并对其调用dict

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

输出:

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