可以通过以下步骤实现:
to_dict()
方法将多索引数据帧转换为字典形式。设置参数orient='index'
以确保字典的键是索引值。zip()
函数将它们组合在一起。下面是一个示例代码:
import pandas as pd
# 创建一个多索引数据帧
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]}
index = pd.MultiIndex.from_tuples([('Group1', 'Index1'), ('Group1', 'Index2'), ('Group2', 'Index1'), ('Group2', 'Index2')])
df = pd.DataFrame(data, index=index)
# 将多索引数据帧转换为字典
dict_data = df.to_dict(orient='index')
# 构建嵌套字典
nested_dict = {group: {index: values for index, values in zip(df.index.get_level_values(1), values_dict)} for group, values_dict in dict_data.items()}
# 打印嵌套字典
print(nested_dict)
这将输出以下结果:
{'Group1': {'Index1': {'A': 1, 'B': 5, 'C': 9}, 'Index2': {'A': 2, 'B': 6, 'C': 10}}, 'Group2': {'Index1': {'A': 3, 'B': 7, 'C': 11}, 'Index2': {'A': 4, 'B': 8, 'C': 12}}}
这样,你就成功地将pandas多索引数据帧转换为嵌套字典了。
领取专属 10元无门槛券
手把手带您无忧上云