Python 将数据帧转换为ID为键的字典

Python 将数据帧转换为ID为键的字典,python,pandas,Python,Pandas,下面是我的pandas dataframe,现在我想用它创建一个记录字典,其中键是记录ID,值是字典,键是字段名,类似这样: 我使用了df.to_dict()函数,但不确定如何使用此函数将记录ID设置为键 {123342: {'Address': 'Brunswick', 'Id': '123342', 'Name': 'Rachels Hunt', 'Unname': 'VB INDUSTRIES', 'no': '6032', 'zip': '01123'}} 记录到数

下面是我的pandas dataframe,现在我想用它创建一个记录字典,其中键是记录ID,值是字典,键是字段名,类似这样:

我使用了df.to_dict()函数,但不确定如何使用此函数将记录ID设置为键

{123342: {'Address': 'Brunswick',
  'Id': '123342',
  'Name': 'Rachels Hunt',
  'Unname': 'VB INDUSTRIES',
  'no': '6032',
  'zip': '01123'}}
记录到数据帧

pd.DataFrame(d).T
Out[836]: 
              Address      Id          Name         Unname    no    zip
123342  Brunswick  123342  Rachels Hunt  VB INDUSTRIES  6032  01123
数据帧到Dict

编辑:

df.T.to_dict()
Out[850]: 
{123342: {'Address': 'Brunswick',
  'Id': '123342',
  'Name': 'Rachels Hunt',
  'Unname': 'VB INDUSTRIES',
  'no': '6032',
  'zip': '01123'}}

使用
设置索引
到dict()

输出:

{123342: {'Address': 'Brunswick',
  'Id': 123342,
  'Name': 'Rachels Hunt',
  'Unname': 'VB INDUSTRIES',
  'no': 6032,
  'zip': 1123}}
注意:我不是将Id列移动到索引中,而是创建一个与Id列相同的新索引

在哪里

请编辑以下评论: 输出:

{123342: {'Address': 'Brunswick',
  'Id': '123342',
  'Name': 'Rachels Hunt',
  'Unname': 'VB INDUSTRIES',
  'no': '6032',
  'zip': '1123'}}

嵌套字典中的ID键丢失这不会给出结果,df.set_index('ID').T.to_dict(),仍然缺少ID,
df.T.to_dict()
@min2bro@min2bro你的意见是什么?你能把它添加到问题中吗?但是它把数字的数据类型从字符串改为整数,检查Id,没有字段。是的,这是因为我用int数据类型创建了数据框。如果我将这些整数转换为字符串,它将生成字符串。
print(df)

       Id    Address          Name         Unname    no   zip
0  123342  Brunswick  Rachels Hunt  VB INDUSTRIES  6032  1123
df.apply(lambda x: x.astype(str)).set_index(df.Id).T.to_dict()
{123342: {'Address': 'Brunswick',
  'Id': '123342',
  'Name': 'Rachels Hunt',
  'Unname': 'VB INDUSTRIES',
  'no': '6032',
  'zip': '1123'}}
dict = [
    {
        d['Id']: {
            'Address'   : d['Address'],
            'Id'        : d['Id'],
            'Name'      : d['Name'],
            'Unname'    : d['Unname'],
            'no'        : d['no'],
            'zip'       : d['zip']
        }
    } 
    for d in df.to_dict(orient = 'records')
]