如何将熊猫 df 转换成包含子组的字典

共1个回答,已解决, 标签: python pandas

我有一个看起来像这样的数据框:

D = {'国家: [' 美国 '、' 加拿大 '] 、 \
“城市”: [“纽约” 、 “旧金山” 、 “圣方济会” 、 “蒙特利尔” 、 “托伦托”
“Landmark”: [“自由女神像” 、 “帝国大厦” 、 “金门大桥” 、 \
“任务区” 、 “比多梅” 、 “劳里公园” 、 “cn 塔” 、 “安大略皇家博物馆”}
数据框 (数据 = d)

我希望它是这样的字典:

All _ options = {
美国: {
“纽约”: [“自由之像”,“帝国大厦”,
“旧金山”: [“金门大桥”,“任务区”,
},
【加拿大】: {
“蒙特利尔”: [“比多米” 、 “劳里公园”,
“Toronto”: [“cn 塔”,“安大略皇家博物馆”,
}
}
第1个答案(采用)

你可以用一个dict comprehension喜欢:

All _ options = {国家: rp.group by (“城市”) [“土地”]。应用 (列表)。to _ dict ()
对于国家,在 df.group by (“国家”)} 中使用 rp

【出】

{'美国': {'纽约': ['解放者雕像','帝国大厦'],
'旧金山': ['金门大桥','任务区']},
“加拿大”: {“蒙特利尔”: [“生物群落” 、 “劳里公园”,
“Toronto”: [“cn 塔”,“安大略皇家博物馆”}

或者,如果你喜欢更明确的方法,这相当于for循环:

All _ options = {}

对于国家来说,df.group by (“国家”) 中的 rp:
All _ options [国家] = rp.group by (“城市”) [“土地”]。应用 (列表)。to _ dict ()

上面有用的链接包括,DataFrame.groupby, Series.apply and Series.to_dict

相关问题

通过随机抽样其他列数据创建新列 如何使用熊猫获得包括每一个组合的计数 如何有效地展开矩阵的值与小块? 如何破坏 Python 对象并释放内存 将具有特殊格式的文本文档转换为熊猫数据框架 用两本字典绘制一只熊猫专栏图