首页 > 后端开发 > Python教程 > 如何从嵌套字典创建具有分层索引的 Pandas DataFrame?

如何从嵌套字典创建具有分层索引的 Pandas DataFrame?

Barbara Streisand
发布: 2024-11-30 17:25:13
原创
522 人浏览过

How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

使用分层索引从嵌套字典值构造 Pandas DataFrame

考虑一个嵌套字典 use​​r_dict,其中第一级键代表 UserId,第二级键是类别,第三级键是各种属性。目标是使用第三级中的值构建具有分层索引的 pandas DataFrame。

为了实现此目标,我们需要将字典的键重塑为表示分层索引的元组。使用 pd.DataFrame.from_dict,我们可以创建具有正确索引结构的 DataFrame:

user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
                  'Category 2': {'att_1': 23, 'att_2': 'another'}},
             15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
                  'Category 2': {'att_1': 30, 'att_2': 'bar'}}}

pd.DataFrame.from_dict({(i,j): user_dict[i][j] 
                           for i in user_dict.keys() 
                           for j in user_dict[i].keys()},
                       orient='index')


               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
登录后复制

另一种方法涉及连接从每个字典条目创建的各个 DataFrame:

user_ids = []
frames = []

for user_id, d in user_dict.iteritems():
    user_ids.append(user_id)
    frames.append(pd.DataFrame.from_dict(d, orient='index'))

pd.concat(frames, keys=user_ids)

               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar
登录后复制

两者方法使用嵌套字典第三层中的值有效地构造具有分层索引的 DataFrame。

以上是如何从嵌套字典创建具有分层索引的 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板