如何从Dictionary列的列表中获取值



我有一个列与列表。列表中有些是空列表,有些是字典列表。我需要得到一个值,从一个关键如果类型是供应商。我尝试了不同的方法,但都不成功。例如

ColumnName
[]
[{'ID': 'D6130732', 'type': 'Driver'}, {'ID': 'V169R454', 'type': 'Vendor'}]
[{'ID': 'V1139I98', 'type': 'Vendor'}]
[{'ID': 'D13090632', 'type': 'Driver'}]
[{'ID': 'V682541632', 'type': 'Vendor'}, {'ID': 'D1852432', 'type': 'Driver'}]
[]
[]

我可以访问list[0]['ID']索引的第一个元素,但不是数据框中的每个列。我想在

下面
columnName
V169R454
V1139I98
V682541632

尝试:

# apply literal_eval on ColumnName (if necessary):
from ast import literal_eval
df["ColumnName"] = df["ColumnName"].apply(literal_eval)
df["ColumnName"] = df["ColumnName"].apply(
lambda lst: [val["ID"] for val in lst if val["type"] == "Vendor"]
)
df = df.explode("ColumnName").dropna()
print(df)

打印:

ColumnName
1    V169R454
2    V1139I98
4  V682541632

最新更新