从Pandas数据帧创建新的动态字典

3
我有一个数据框,我想从中取出某些值并输入到一个新的字典中。我想重命名数据框中的一些列,并将它们作为键添加到字典中。我要如何从头开始构建一个动态的字典并把数据框中的列值作为值输入到字典中?
数据框中的输入列包括"奖项编号",它将在字典中被称为"通知编号",以及"学院"等。数据框看起来像这样:
AwardAmount AwardNumber         College                      Department   Name  Email  
None        3R01GM110382-03S1   College of Arts and Sciences Chemistry    Mary  mary@gsu.edu  

期望的输出应该像这样:

所需的输出应该如此:

{ 
    "AwardAmount": None,
    "noticeNumber": "3R01GM110382-03S1",
    "College": "College of Arts and Sciences",
    "Department": "Chemistry",
    "Name": "Mary",
    "Email": "mary@gsu.edu"
}

你能提供更清晰的输入和输出,说明你想要做什么吗? - rafaelc
我刚刚更新了问题,并提供了所需的输出。如果需要,我还可以提供更多的数据框!谢谢并抱歉 - 这是我第一次发布! - ds920
2
@kkinatl,你的问题应该是可重现的,即要发布示例数据框架和你希望得到的输出。 - Grigoriy Mikhalkin
能否请您把示例讲得更清楚一些?为什么PersonnelDetails是一个列表?如果您只是将列命名为A、B、C、D,我并不介意。但请确保您的输入和期望输出是一致的,这将鼓励我们提供帮助。 - jpp
1个回答

2

看一下to_dict方法。它有一个orient参数,用于确定字典的类型。由于你没有提供多行示例,我只能猜测你想要得到的结果。这里有一个orient="records"的示例:

df = pd.DataFrame([[None, "3R01GM110382-03S1", "College of Arts and Sciences", "Chemistry", "Mary", "mary@gsu.edu"]], columns=["AwardAmount", "AwardNumber", "College", "Department", "Name", "Email"])
(df.rename(columns={'AwardNumber': 'noticeNumber'})
   .to_dict(orient="records"))
# [{'Department': 'Chemistry', 'Name': 'Mary', 'AwardAmount': None, 'noticeNumber': '3R01GM110382-03S1', 'College': 'College of Arts and Sciences', 'Email': 'mary@gsu.edu'}]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接