将pandas转换为定义用于键值的列的字典

时间:2016-12-13 12:52:45

标签: pandas dictionary

大熊猫数据框' test_df'。我的目标是将其转换为字典。因此我运行:

   id   Name   Gender  Age  
0  1  'Peter'   'M'     32    
1  2  'Lara'    'F'     45   

因此我运行:

test_dict = test_df.set_index('id').T.to_dict()

输出是这样的:

{1: {'Name': 'Peter', 'Gender': 'M', 'Age': 32}, 2: {'Name': 'Lara', 'Gender': 'F', 'Age': 45}}

现在,我想只选择'姓名'和'性别'列作为字典键的值。我试图将上述脚本修改成这样:

test_dict = test_df.set_index('id')['Name']['Gender'].T.to_dict()

没有成功!

有什么建议吗?!

1 个答案:

答案 0 :(得分:1)

您非常接近,使用subset列的[['Name','Gender']]

test_dict = test_df.set_index('id')[['Name','Gender']].T.to_dict()
print (test_dict)
{1: {'Name': 'Peter', 'Gender': 'M'}, 2: {'Name': 'Lara', 'Gender': 'F'}}

也不需要T,请使用参数orient='index'

test_dict = test_df.set_index('id')[['Name','Gender']].to_dict(orient='index')
print (test_dict)
{1: {'Name': 'Peter', 'Gender': 'M'}, 2: {'Name': 'Lara', 'Gender': 'F'}}