我有一本具有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
答案 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