Как вы применяете оператор IF к DataFrame? - PullRequest
0 голосов
/ 29 октября 2019

У меня есть функция, которую я могу применить к столбцу данных, df ['X'].

df['X'].str[:-2].str.zfill(2).apply('="{}"'.format).str.replace(' ', '')

, который возвращает = "08", или = "03" в самом столбце,Однако я хочу применить это условие, только если значение столбца не равно np.nan. Интересно, как можно применять такие функции в соответствии с оператором if?

df['X'] = df.apply(lambda x: x['X'].str.zfill(3).apply('="{}"'.format).str.replace(' ', '') if x['X'] != np.nan else x, 1). 

Я пробовал это, которое, как мне показалось, могло бы работать, но возвращается ошибка с сообщением:

"AttributeError: ("У объекта 'str' нет атрибута 'str'", 'произошло с индексом 0') "

1 Ответ

0 голосов
/ 29 октября 2019

вы можете использовать np.where () . Подробности смотрите в этом вопросе:

https://stackoverflow.com/a/48123410/2606766

В качестве альтернативы вы можете выполнить итерацию по проверке строк для вашего условия. Смотрите, например, этот ответ:

https://stackoverflow.com/a/58510181/2606766

...