удалить кортеж, если элемент в кортеже отсутствует в списке в другом фрейме данных - PullRequest
0 голосов
/ 22 июня 2019

Если у меня есть список кортежей и другой список, для которого кортежи должны быть условными:

my_list=['a','e']
my_list1= ['a','b','a','c','b','d','e','f','a','h']
v=[data for data in zip(my_list1,my_list1[1::1])]
del v[1::2]

теперь, чтобы сохранить только те кортежи, которые содержат элементы из my_list, который я использую

v = [tup for tup in v if any(c in my_list for c in tup)]

, который возвращает [('a', 'b'), ('a', 'c'), ('e', 'f'), ('a', 'h')] Теперь я хочу выполнить ту же операцию, перебирая кадры данных

df15=pd.DataFrame({'names':[['a','c'],['k','f']]})
df14=pd.DataFrame({'tup':[[('a','g'), ('b','h'), ('c', 'i')],[('d', 'j'), ('e', 'k'), ('f', 'l')]]})

но звонит

for index,row in df14.iterrows():
df15['tup']=[tup for tup in df14['tup'] if any(c in df15.names for c in tup)]

возвращает эту ошибку:

Длина значений не соответствует длине индекса

ожидаемый результат будет

 df15    
            names     tup
    0     ['a','c']  [('a','g'),('c', 'i')] #not necessary to keep the tuples
    1     ['k','f']  [('e', 'k'),('f','l')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...