【问题标题】:Generate excel file from list of nested dictionaries从嵌套字典列表生成 excel 文件
【发布时间】:2022-01-22 02:21:17
【问题描述】:

我有这样的列表(简化版):

data = [{'layer1': [{'idx': 'idx_102',
               'size': 8 },
               {'idx': 'idx_112',
               'size': 25 },
               {'idx': 'idx_142',
               'size': 10 }]
     },
    {'layer2': [{'idx': 'idx_125',
               'size': 28 },
               {'idx': 'idx_258',
               'size': 21 },
               {'idx': 'idx_658',
               'size': 12 }]
     },
    {'layer3': [{'idx': 'idx_158',
               'size': 78 }]
    }]

excel文件的结构应该是这样的:

有人可以帮忙吗,我迷失了 Pandas

【问题讨论】:

  • 此数据是否来自 json?否则json_normalize 可能会有所帮助。
  • @Paul 谢谢我也会检查这个文档

标签: python excel pandas dataframe


【解决方案1】:

将嵌套列表与字典推导一起使用:

L = [{**{'layer': k}, **x} for d in data for k, v in d.items() for x in v]

df = pd.DataFrame(L)
print (df)
    layer      idx  size
0  layer1  idx_102     8
1  layer1  idx_112    25
2  layer1  idx_142    10
3  layer2  idx_125    28
4  layer2  idx_258    21
5  layer2  idx_658    12
6  layer3  idx_158    78

如果需要,最后删除重复项:

df.loc[df['layer'].duplicated(), 'layer'] = ''
print (df)
    layer      idx  size
0  layer1  idx_102     8
1          idx_112    25
2          idx_142    10
3  layer2  idx_125    28
4          idx_258    21
5          idx_658    12
6  layer3  idx_158    78

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多