我正在尝试为 pandas 中的列应用 .apply,但它抛出类型错误:"float"对象不可下标



我正在尝试应用 .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])

它适用于上述数据集,但它为原始数据集抛出错误。

原始数据集的错误:

类型错误:"float"对象不可下标

我认为您可以按缺失值添加过滤:

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']]

相关内容

最新更新