Python 在遍历数据帧时创建字典的方法

Python 在遍历数据帧时创建字典的方法,python,pandas,Python,Pandas,这是我的第一个问题,请原谅我的格式错误 我有一个数据框,可以这样说 ID | Contact | First Name | Last Name 1 | A | Joe | Doe 1 | B | Jane | Doe 2 | C | Peter | Parker 2 | D | Iron | Man 我想迭代数据帧并创建一个字典,以便得到如下结果: {1:{A:[Jo

这是我的第一个问题,请原谅我的格式错误

我有一个数据框,可以这样说

ID | Contact | First Name | Last Name
 1 |    A    |    Joe     |    Doe
 1 |    B    |    Jane    |    Doe
 2 |    C    |    Peter   |    Parker
 2 |    D    |    Iron    |    Man
我想迭代数据帧并创建一个字典,以便得到如下结果:

{1:{A:[Joe, Doe]}, {B:[Jane, Doe]}, 2:{C:[Peter, Parker]},{D:[Iron, Man]}}
我用pandas来创建数据帧,我已经为此奋斗了一段时间,也许我已经太深了,答案很简单,或者与我已经尝试过的不同

我尝试使用for循环遍历联系人,然后检查ID是否重复,然后将它们分组在一起,但没有成功


提前感谢您的帮助。

由于ID似乎是此ID中其余信息的一个键,您可以尝试以下操作(将ID中的所有信息放入列表中):

输出:

{1: [{'A': ['Joe', 'Doe']}, {'B': ['Jane', 'Doe']}],
 2: [{'C': ['Peter', 'Parker']}, {'D': ['Iron', 'Man']}]}

一种方法是创建一个
全名
列,然后循环通过groupby并指定要对数据执行的操作:

df['Full Name'] = df[['First Name', 'Last Name']].agg(list, axis=1)

out = {i:d.set_index('Contact')['Full Name'].to_dict() 
          for i,d in df.groupby('ID')}
输出:

{1: {'A': ['Joe', 'Doe'], 'B': ['Jane', 'Doe']},
 2: {'C': ['Peter', 'Parker'], 'D': ['Iron', 'Man']}}

这是我的初衷,我不得不在更多的栏目中使用它,而不仅仅是“名字,姓氏”,而且它仍然有效。非常感谢。谢谢你的回答。这在这个场景中会很有帮助,但因为在我的实际案例中,我使用了更多的列,所以这个方法没有那么有效,因为它会涉及很多行代码。在未来的场景中,仍将记录此方法!再次感谢你的帮助
{1: {'A': ['Joe', 'Doe'], 'B': ['Jane', 'Doe']},
 2: {'C': ['Peter', 'Parker'], 'D': ['Iron', 'Man']}}