从字典列表中提取索引

2024-05-21 02:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,如下所示

   ID       Name        Age
   101      Bart         10 
   234      Homer        39

我用计算机把它转换成字典 代码-:

    dic1 = df6.to_dict(orient = 'index')

例如-:

      {101:{'name':'Bart', 'age':10}, 234:{'name':'Homer', 'age':39}}

但我想,除了第一列,其他所有东西都应该转换成字典

      ID    list
      101    {'name':'Bart', 'age':10} 
      234    {'name':'Homer', 'age':39}

Tags: to数据代码nameidage字典计算机
2条回答

从我称之为df的初始数据帧开始,我以NameAge列为例,将它们转换为字典。我使用python的values()方法获取这些值,并将其分配给lists变量。然后,我用第一个数据帧和新列的ID创建了一个新的数据帧

import pandas as pd
df = pd.DataFrame([[101, "Bart", 10], [234, "Homer", 39]], columns = ["ID", "Name", "Age"])
lists = df[['Name', "Age"]].to_dict(orient = 'index').values()
df1 = pd.DataFrame({"ID": df["ID"], "lists": lists})

enter image description here

如果希望ID列成为主键,可以调用

df1.set_index("ID")

这就产生了 enter image description here

您可以将列表理解与词典的.keys().values()一起使用:

import pandas as pd

df = pd.DataFrame({"ID": [101, 234], "Name": ["Bart", "Homer"], "Age": [10, 39]})
records = df.set_index("ID").to_dict(orient="index")
pd.DataFrame([[v] for v in records.values()], index=records.keys())

哪张照片

                                0
101   {'Name': 'Bart', 'Age': 10}
234  {'Name': 'Homer', 'Age': 39}

相关问题 更多 >