У меня есть dataframe, который выглядит следующим образом:Поиск значения в dataframe, который содержит список
id points
a [c,v,b,n]
b []
c [x,a]
....
и словарь (я также как dataframe):
{'a': ['j','c'],
'b': [p,r,q]
'c': [n,k,l,x,a]
....}
Я хочу поиск, если ключ словаря содержится, - это точки кадра данных, а затем удалить элементы из словарных точек, которые не совпадают в словаре. Ожидаемый результат:
id points
a [c]
b []
c [x,a]
Я попробовал этот
for key,point in my_dict.items():
if df['points'].str.contains(point).any()
, но я получаю TypeError: unhashable type: 'list'
Я попытался преобразования dataframe в словарь, но тогда время поиска слишком много, потому что мне нужно больше для петель. Любые предложения по улучшению кода или структуры данных?
Редактировать
Другое представление данных:
id points
a [c,v,b,n]
b []
c [x,a]
....
и
points
j,c
p,r,q
n,k,l,x,a
Я получаю ключевую ошибку. Есть ли другое решение, использующее два блока данных, которые я добавил в свой пост? – mnmbs
вы можете отправлять исходные входные данные и весь код для воспроизведения ваших dfs и того, что вы пробовали, что вызвало ошибку. – EdChum
Извините, поскольку я дважды проверял перед публикацией, я нашел свою ошибку. Это было очень полезно! Благодаря! – mnmbs