我有一个有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
使用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
将您的值转换为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