Поскольку ваш столбец tag
является списочным, вы можете использовать explode
, если находитесь на пандах 0.25 +:
# toy data
df = pd.DataFrame({'type':['df','fg','ff'],
'tag': [[{"id" : 12} ,{"id" : 13}],
[{"id" : 12}],
[{'id':10}]]
})
# make each row contains exactly one dict: {id: val}
s = df['tag'].explode()
# the indexes of interested rows
idx = s.index[pd.DataFrame(s.to_list())['id'].values==12]
# output
df.loc[idx]
Вывод:
type tag
0 df [{'id': 12}, {'id': 13}]
1 fg [{'id': 12}]