首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以列表值作为多索引数据的字典

以列表值作为多索引数据的字典
EN

Stack Overflow用户
提问于 2019-10-10 20:04:07
回答 2查看 102关注 0票数 2

我想从以下字典中获得一个多索引数据框架:

d = {'a' : [1,2,3], 'b' : [4,5], 'c': [7,8]}

没有运气就试过了pd.DataFrame.from_dict(d, orient='index')

键应该是多个索引的索引第一级和值--第二级,期望的输出是:

代码语言:javascript
复制
a     1
      2
      3

b     4
      5

c     7
      8
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-10 20:14:27

您可以使用Pandas系列中的分解函数

pd.Series({'a': [1,2,3], 'b' : [4,5], 'c': [7,8]}).explode()

会回来

代码语言:javascript
复制
a    1
a    2
a    3
b    4
b    5
c    7
c    8
票数 5
EN

Stack Overflow用户

发布于 2019-10-10 20:12:40

itertools的帮助下

代码语言:javascript
复制
import pandas as pd
from itertools import chain, zip_longest

idx = chain.from_iterable([zip_longest(k, v, fillvalue=k) for k,v in d.items()])
pd.MultiIndex.from_tuples(idx)
代码语言:javascript
复制
MultiIndex([('a', 1),
            ('a', 2),
            ('a', 3),
            ('b', 4),
            ('b', 5),
            ('c', 7),
            ('c', 8)],
           )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58330352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档