Как установить значения в столбце dataframe на основе другого столбца Python - может быть, маска? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть столбец B, заполненный значениями, некоторыми цифрами и альфа-символами.

Я хочу, чтобы другой столбец C принял значение, основанное на str.split другого столбца A.

Если B содержит альфы, я хочу, чтобы C было [4] разбиением.Если B не содержит альфа, то я хочу, чтобы C был [5] split

. Я попытался использовать маску, но потерпел неудачу с ошибкой:

TypeError: bad operand type for unary ~: 'NoneType'

Мой код:

mydf.loc[:,'B Reported']        =  mydf['A Temp'].str.split('/', expand = True)[0]
mydf.loc[:,'B Reported']        =  mydf['B Reported'].str.strip()                                    
mydf.loc[:,'C Reported']        =  mydf['A Temp'].str.split('/', expand = True)[1]
mydf.loc[:,'C Reported']        =  mydf['C Reported'].str.strip()  
mydf.loc[:,'C alphacheck']      =  mydf['C Reported'].mask(cond = mydf['B Reported'].str.isalpha(), other = '')

Обратите внимание, что в данный момент я просто пытаюсь заставить его работать с маской в ​​другом столбце (C alphacheck), чтобы он был либо исходным значением C, если B - альфа, либо пустым, если нет.Я могу поиграться со всем этим, если смогу просто проверить проверку .isalpha внутри маски.

Надеюсь, что все имеет смысл

...