首页 > 解决方案 > 遍历 pandas 中整个列的字典列表

问题描述

我有一列的行如下所示:

[]
[{'id': 'EQ01', 'siteName': 'WW INSTR FG'}]
[]
[]
[]
[]
[{'id': 'RM00', 'siteName': 'WW RAW MATERIAL'}]
[]
[]
[]
[]
[{'id': 'PR03', 'siteName': 'INST PROD'}, {'id': 'RM00', 'siteName': 'WW RAW MATERIAL'}, {'id': 'RM03', 'siteName': 'INST MATERIAL'}]
[]
[]
[]
[]
[{'id': 'PR05', 'siteName': 'MEQ PROD'}]

我正在尝试获取每行字典列表中第一个字典的键“id”的值,然后将该值分配给给定索引处名为“位置”的新列。

rowIndex = -1
for lists in df_elem['sites']:
    rowIndex +=1 
    for dicts in lists:
        locations = dicts.get('id')
        print(locations)
        df_elem.loc[rowIndex, 'locations'] = locations

这段代码似乎适用于其他列很好(并且足够快),但无论出于何种原因,我都会收到类型错误:float object not iterable。这很奇怪,因为我可以在将每个值分配给位置变量后打印它,但我不能分配该值或将其附加到列表中(经过多种方法)。我在这里想念什么?我应该如何编码?我知道有下面这样的方法,但我不会使用它们。我正在努力提高我的函数式编程技能。

df.explode('column')

标签: pythonpandasnested-listsnested-for-loop

解决方案


推荐阅读