【发布时间】:2018-05-30 02:54:42
【问题描述】:
我有一个嵌套字典,其中子字典使用列表:
nested_dict = {'string1': {69: [1231, 232], 67:[682, 12], 65: [1, 1]},
`string2` :{28672: [82, 23], 22736:[82, 93, 1102, 102], 19423: [64, 23]}, ... }
子词典列表中至少有两个元素,但可能还有更多。
我想把这个字典“展开”成一个 pandas DataFrame,一列用于第一个字典键(例如'string1','string2',..),一列用于子目录键,一列列表中的第一个项目,下一个项目的一列,依此类推。
下面是输出的样子:
col1 col2 col3 col4 col5 col6
string1 69 1231 232
string1 67 682 12
string1 65 1 1
string2 28672 82 23
string2 22736 82 93 1102 102
string2 19423 64 23
当然,我尝试使用pd.DataFrame.from_dict:
new_df = pd.DataFrame.from_dict({(i,j): nested_dict[i][j]
for i in nested_dict.keys()
for j in nested_dict[i].keys()
...
现在我被困住了。并且存在很多问题:
如何解析字符串(即
nested_dict[i].values()),使每个元素都是一个新的 pandas DataFrame 列?上面实际上不会为每个字段创建一列
以上内容不会用元素填充列,例如
string1应该在子目录键值对的每一行中。 (对于col5和col6,我可以用零填充NA)我不确定如何正确命名这些列。
【问题讨论】:
标签: python pandas dictionary