gpt4 book ai didi

python - 将 Pandas 多索引数据框转换为嵌套字典

转载 作者:太空狗 更新时间:2023-10-30 02:53:54 25 4
gpt4 key购买 nike

我有一个 pandas 多索引数据框,我试图将其输出为嵌套字典。

# create the dataset
data = {'clump_thickness': {(0, 0): 274.0, (0, 1): 19.0, (1, 0): 67.0, (1, 1): 12.0, (2, 0): 83.0, (2, 1): 45.0, (3, 0): 16.0, (3, 1): 40.0, (4, 0): 4.0, (4, 1): 54.0, (5, 0): 0.0, (5, 1): 69.0, (6, 0): 0.0, (6, 1): 0.0, (7, 0): 0.0, (7, 1): 0.0, (8, 0): 0.0, (8, 1): 0.0, (9, 0): 0.0, (9, 1): 0.0}}
df = pd.DataFrame(data)
df.head()
# clump_thickness
# 0 0 274.0
# 1 19.0
# 1 0 67.0
# 1 12.0
# 2 0 83.0

df 是我想输出为嵌套字典的数据框。我正在寻找的输出形式为 -

{"0":
{
"0":274,
"1":19
},
"1":{
"0":67,
"1":12
},
"2":{
"0":83,
"1":45
},
"3":{
"0":16,
"1":40
},
"4":{
"0":4,
"1":54
},
"5":{
"0":0,
"1":69
}
}

这里第一个索引构成了最外层字典的键。对于每个键,我们都存储了一个字典,其键是第二个索引中的值。

当我执行 df.to_dict() 时,多索引不是嵌套,而是作为元组返回。我如何实现这一点?

最佳答案

对我来说工作:

d = {l: df.xs(l)['clump_thickness'].to_dict() for l in df.index.levels[0]}

另一个类似的解决方案 DataFrame with MultiIndex to dict , 但对于 Series 是必需的过滤列:

d = df.groupby(level=0).apply(lambda df: df.xs(df.name).clump_thickness.to_dict()).to_dict()

print (d)

{0: {0: 274.0, 1: 19.0},
1: {0: 67.0, 1: 12.0},
2: {0: 83.0, 1: 45.0},
3: {0: 16.0, 1: 40.0},
4: {0: 4.0, 1: 54.0},
5: {0: 0.0, 1: 69.0},
6: {0: 0.0, 1: 0.0},
7: {0: 0.0, 1: 0.0},
8: {0: 0.0, 1: 0.0},
9: {0: 0.0, 1: 0.0}}

关于python - 将 Pandas 多索引数据框转换为嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com