我正在尝试使用 .apply 申请 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])
对于上述数据集它工作得很好,但是对于原始数据集它会抛出错误。
原始数据集错误:
类型错误:“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']]
关于python - 我试图在 pandas 中申请 .apply 列,但它抛出 TypeError : 'float' object is not subscriptable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659774/