Создать новый столбец в DataFrame из условного списка - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть DataFrame, такой как:

df = pd.DataFrame({'A' : (1,2,3), 'B': ([0,1],[3,4],[6,0])})

Я хочу создать новый столбец с именем test, который отображает 1, если в каждом списке в столбце B. существует 0, результаты, надеюсь, будут выглядеть следующим образом:

df = pd.DataFrame({'A' : (1,2,3), 'B': ([0,1],[3,4],[6,0]), 'test': (1,0,1)})

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

df.loc[df['B'].str.contains(0),'test']=1

Когда я пытаюсь это сделать с примером df, я генерирую

TypeError: first argument must be string or compiled pattern

Я также пытался преобразовать список в строку, но сохранил только первое целое число в списке.Я подозреваю, что мне нужно что-то еще для доступа к элементам в списке, но я не знаю, как это сделать.Есть предложения?

1 Ответ

0 голосов
/ 11 сентября 2018

Это должно сделать это для вас:

df['test'] = pd.np.where(df['B'].apply(lambda x: 0 in x), 1, 0)

...