将字典不等项转换为数据框

时间:2018-09-12 20:04:58

标签: python python-3.x pandas dictionary dataframe

我有一本具有3000个键的字典,每个键都有一个列表作为其值,

示例:

dictionary = {'yup': ['chocolate', 'pizza', 'rainbows'], 'tape': ['what', 'milk'], ....}

我想将此字典转换为数据库,但是由于我的值不相等,因此无法使用pandas命令“ pd.DataFrame(dictionary)”。我收到错误消息“数组必须全部相同”。

我的问题是,我如何仍然创建一个数据帧(转置它)并在没有数据的空单元格中留空。

示例:

index   column1      column2   column3 

`'yup'  'chocolate'  'pizza'    'rainbows`'

'tape'  'what'       'milk'     blank

2 个答案:

答案 0 :(得分:4)

values用于值,将keys用于索引

df = pd.DataFrame(list(dictionary.values()), index=dictionary.keys())

        0           1       2
yup     chocolate   pizza   rainbows
tape    what        milk    None

如果需要名为index的列

df.reset_index()

    index   0           1       2
0   yup     chocolate   pizza   rainbows
1   tape    what        milk    None

答案 1 :(得分:2)

将您的值转换为pd.Series

df = pd.DataFrame({k:pd.Series(v) for k,v in dictionary.items()}).T

              0      1         2
tape       what   milk       NaN
yup   chocolate  pizza  rainbows

或者:

df = pd.DataFrame.from_dict({k:pd.Series(v) for k,v in dictionary.items()},orient='index')

              0      1         2
tape       what   milk       NaN
yup   chocolate  pizza  rainbows