给出一条格言:

{1: [1,2,3,4,5], 2: [55,22,112]}

我想建立一个数据框架:

key_id ids
1      1
1      2 
1      3
1      4
1      5
2      55
2      22
2      112

我该怎么做?

P.S.有时它会是一个数据帧作为值:

{0: pd.DataFrame({'id': {0: 3}})}

推荐答案

我认为简单的列表理解就足够了:

pd.DataFrame(
    [(k, i) for k, v in d.items() for i in v], 
    columns=['key_id', 'ids']
)

   key_id  ids
0       1    1
1       1    2
2       1    3
3       1    4
4       1    5
5       2   55
6       2   22
7       2  112

Python-3.x相关问答推荐

如何将参数/值从测试方法传递给pytest的fixture函数?

查找值始终为零的行 pandas

重复数组直到一定长度 groupby pandas

如何提高 snowpark 程序的性能?

如何通过 python 使用 auth no priv 获取 SNMPv3?

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

双轴上的刻度和标签

如何在两个矩阵的比较中允许任何列的符号差异,Python3?

保存 StandardScaler() 模型以用于新数据集

两个Pandas数据框中的共同列列表

Python过滤器函数 - 单个结果

为什么我在 Python 中收到错误消息无法导入名称 NoneType?

如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

ImportError:无法导入名称cross_validate

类型提示返回 NameError: name 'datetime' not defined

如何模拟 open(...).write() 而不会出现没有这样的文件或目录错误?

如何在 FastAPI 中的一条路由上捕获任意路径?

Python pathlib 获取父级相对路径

命名参数可以与 Python 枚举一起使用吗?

在 PyCharm 中配置解释器:请使用不同的 SDK 名称