将 dict 转换为数据帧,其中每个值都重复键?

Ste*_*veS 5 dictionary dataframe python-3.x pandas

给定一个字典:

{1: [1,2,3,4,5], 2: [55,22,112]}
Run Code Online (Sandbox Code Playgroud)

我想构建一个数据框:

key_id ids
1      1
1      2 
1      3
1      4
1      5
2      55
2      22
2      112
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我正在尝试玩,pd.DataFrame.from_dict()但这似乎不是正确的方法。还尝试运行字典,并创建一个具有与值列表长度相同的键的列表。有什么有效的方法可以做到这一点吗?

PS 有时它会是一个数据帧作为值:

{0: pd.DataFrame({'id': {0: 3}})}
Run Code Online (Sandbox Code Playgroud)

Shu*_*rma 3

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

pd.DataFrame(
    [(k, i) for k, v in d.items() for i in v], 
    columns=['key_id', 'ids']
)
Run Code Online (Sandbox Code Playgroud)
   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
Run Code Online (Sandbox Code Playgroud)