我有一个如下所示的 df:
data = [['a', 10, 1], ['b', 15,12], ['c', 14,12]]
df = pd.DataFrame(data, columns = ['Name', 'x', 'y'])
Name x y
0 a 10 1
1 b 15 12
2 c 14 12
现在我希望它将它传递给一个字典,其中 x
和 y
位于名为 total
的键内:
所以最终的字典会是这样的
{
'Name': 'a',
"total": {
"x": 308,
"y": 229
},
}
我知道我可以使用df.to_dict('records')
来获取这个字典:
{
'Name': 'a',
"x": 308,
"y": 229
}
有什么建议吗?
最佳答案
你可以试试
my_dict = [{'Name': row['Name'], 'total': {'x': row['x'], 'y': row['y']}} for row in df.to_dict('records')]
结果:
[{'Name': 'a', 'total': {'x': 10, 'y': 1}}, {'Name': 'b', 'total': {'x': 15, 'y': 12}}, {'Name': 'c', 'total': {'x': 14, 'y': 12}}]
或者,如果您希望将除“名称”之外的所有列转换为“总计”,并且前提是“名称”中没有重复:
df.set_index('Name', inplace=True)
result = [{'Name': name, 'total': total} for name, total in df.to_dict('index').items()]
结果与之前相同。
关于python - 来自 df 的字典,键内有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893415/