Я пытаюсь применить .apply для столбца в пандах, но он выдает TypeError: объект 'float' не является подписным - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь применить .apply для столбца в пандах с

 import pandas as pd
ids = pd.DataFrame({
    'Id':['ABCD0000000001', 'ABCD0000000002', 'ABCD0000000003','ABCD0000000004','ABCD0000000004'],

}
)

ids['Id']=ids['Id'].apply(lambda x: x[:2] + 'X' * (len(x) - 2) + x[-1])

Он отлично работает для вышеуказанного набора данных, но выдает ошибку для исходного набора данных.

Ошибкадля исходного набора данных:

TypeError: объект 'float' не может быть подписан

1 Ответ

0 голосов
/ 05 октября 2018

Я думаю, что вы можете добавить фильтрацию по пропущенным значениям:

ids['Id1']=ids['Id'].apply(lambda x: x[:2] + 'X' * (len(x) - 2) + x[-1] if  pd.notnull(x) else x)

Или:

ids['Id1']= [x[:2] + 'X' * (len(x) - 2) + x[-1] if  pd.notnull(x) else x for x in ids['Id']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...