python - 遍历 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')