将字典不相等的项转换为数据框[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我有一个有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
python python-3.x pandas dictionary dataframe
2个回答
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

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
© www.soinside.com 2019 - 2024. All rights reserved.