将包含每个键的多个值的字典转换为数据帧

时间:2017-03-06 07:39:53

标签: pandas numpy dictionary dataframe

我是Python和熊猫的新手。我试图将具有多个值的键转换为数据帧。以下是示例数据。

    Out[]: {a: [1, 2, 3], b: [11, 22, 33], 
         c: [111, 222, 333], d: [1111, 2222, 3333, 4444}

我尝试过以下代码:

    df = pd.DataFrame.from_dict(dict_name, orient = "index")
    df1

或者

    df = pd.DataFrame(dict_name)

但是,我没有得到我想要的东西,我想我需要循环使用价值观或其他东西,请帮忙。我记得的输出:

      col_name1     col_name2
    0 a             1
    1 a             2
    2 a             3
    3 b             11 
    4 b             22
    5 b             33
    6 c             111
    and so on...

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用stack进行重塑,必要时sort_index并转换为int,最后通过column MultiIndex创建df = pd.DataFrame.from_dict(dict_name, orient = "index") .sort_index() .stack() .astype(int) .reset_index(level=1, drop=True) .reset_index() df.columns = ['col_name1','col_name2'] print (df) col_name1 col_name2 0 a 1 1 a 2 2 a 3 3 b 11 4 b 22 5 b 33 6 c 111 7 c 222 8 c 333 9 d 1111 10 d 2222 11 d 3333 12 d 4444 reset_index

skills : [{ type: ObjectId, ref: 'Skill' }]
相关问题