Элемент мудрый 'в' для pandas с серией списков - PullRequest
1 голос
/ 22 апреля 2020

У меня есть около 30 столбцов, для которых я хочу изменить значение, если это значение находится в этой строке для столбца списков. Это немного сложно описать в устной форме, поэтому вот некоторый код для того, о чем я говорю:

test = test.groupby('RealId')['Player'].apply(list).reset_index(name='Invalids')
test.index = te["RealId"]
test.drop("RealId", axis='columns', inplace=True)
test = test.join(te, on="RealId", how="left")

test['PA_14'].isin(test['Invalids'])

Столбец PA_14 - это обычная серия строк, а Invalids - это серия списков строк. Я хотел бы, чтобы в последней строке был выведен логический вектор, но isin () не работает с серией списков. Как я делаю это относительно быстро, учитывая, что это нужно сделать еще 30 раз?

1 Ответ

0 голосов
/ 22 апреля 2020

Ваша последняя строка фактически проверяет для каждого элемента (str) test['PA_14'], если это один из элементов (списка) из test['Invalids'].
Вы можете попробовать: boolean_index = [s in list_s for (s, list_s) in zip(test['PA_14'], test['Invalids'])]

...