当数组长度不相等时从字典转换为数据帧?



我有一本这样的字典:

{1: ["a", "b", "c"],
2: ["d", "e", "f", "g"]}

,我想把它变成这样的数据帧:

<表类>id项目tbody><<tr>11b1c2d2e2f2g

示例

data = {1: ["a", "b", "c"],
2: ["d", "e", "f", "g"]}

pd.Series(data).explode()

输出(系列):

1    a
1    b
1    c
2    d
2    e
2    f
2    g
dtype: object



如果你想要结果为dataframe,使用以下代码:

pd.Series(data).explode().reset_index().set_axis(['id', 'item'], axis=1)

输出(dataframe):

id  item
0   1   a
1   1   b
2   1   c
3   2   d
4   2   e
5   2   f
6   2   g
pd.concat([pd.DataFrame(v,index=[i]*len(v),columns=['items']) for i,v in map1.items()])
.rename_axis('id').reset_index()

id items
0   1     a
1   1     b
2   1     c
3   2     d
4   2     e
5   2     f
6   2     g

相关内容

  • 没有找到相关文章

最新更新