使用分层索引从嵌套字典值构造 Pandas DataFrame
考虑一个嵌套字典 user_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中文网其他相关文章!