В Python как мне присвоить значение ColB на основе моего значения ColA? - PullRequest
1 голос
/ 24 февраля 2020

В настоящее время у меня есть список и 1 таблица с двумя именами столбцов

list = [a, b, c]

В TableA есть colA и colB.

Я хочу установить значение в colB в зависимости от моего значения в colA.

если список находится в столбце A, установите для столбца B значение 1. В противном случае установите для столбца B значение 0.

Я пробовал это значение l oop, но оно неэффективно из-за большого набора данных. ,

for i in TableA['colA']:
    if '' in i :
        TableA['colB'] = '0'
    elif 'list value 1' in i:
        TableA['colB'] = '0'
    elif 'list value 2' in i:
        TableA['colB'] = '0'
    elif 'list value 3' in i:
        TableA['colB'] = '0'
    else:
       TableA['colB'] = '1'

Пожалуйста, помогите с чем-нибудь более эффективным.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Давайте разберем, что вы намереваетесь сделать: 1) Отфильтруйте по критериям 2) Установите значения соответственно

Для 1) вы можете создать логический ряд для представления критериев, таких как @G. Андерсон предложил в комментариях примерно так:

TableA['colA'].isin(value_list)

Примечание: для не isin добавить ~ примерно так: ~TableA['colA'].isin(value_list)

Перейдите к 2), по умолчанию colB к нулю:

TableA['colB'] = 0

Затем установите значения 1 в соответствии с критериями:

TableA.loc[TableA['colA'].isin(value_list), 'colB'] = 1

Последнее примечание: пожалуйста, не используйте имена переменных, которые сталкиваются с встроенными функциями как list.

0 голосов
/ 24 февраля 2020

Я бы, наверное, написал, если '' == я, а не я. Я - элемент списка, а не весь список, поэтому он не будет «в» элементе, он будет равен элементу.

...