我正在尝试为熊猫中的一列申请.apply,但会引发TypeError:“ float”对象不可下标

时间:2018-10-05 06:45:38

标签: python pandas

我正在尝试通过

申请.pandas中的熊猫专栏
 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:“浮动”对象不可下标

1 个答案:

答案 0 :(得分:1)

我认为您可以通过缺少值来添加过滤条件:

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