pandas 当数组长度不相等时,是否从字典转换为 Dataframe ?

7tofc5zh  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(195)

我有一本这样的字典:

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

我想把它变成这样的 Dataframe :
| 标识符|项目|
| - -|- -|
| 一个|一种|
| 一个|B|
| 一个|C语言|
| 2个|日|
| 2个|电子|
| 2个|关闭|
| 2个|克|
但是当我尝试使用pandas.DataFrame.from_dict()时,我得到了一个错误,因为我的数组长度不一样。

ovfsdjhp

ovfsdjhp1#

示例

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

代码

pd.Series(data).explode()

输出(系列):
如果希望将结果保存到 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
vq8itlhq

vq8itlhq2#

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

相关问题