python - 我试图在 pandas 中申请 .apply 列,但它抛出 TypeError : 'float' object is not subscriptable

标签 python pandas

我正在尝试使用 .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/

相关文章:

python - Pandas 数据透视表到数据框

python - azure 虚拟机操作

python - Matplotlib 基于 x 轴上的值使用多种颜色进行绘图

python - 创建 Pytorch "Stack of Views"以节省 GPU 内存

python - pandas:将两个 DataFrame 与排序的 MultiIndex 连接起来,使得结果具有排序的 MultiIndex

python - 如何在 python pandas 中使用 str.contains 拆分具有多个类别的数据帧?

python - 如何检查时间戳和日期,然后删除不匹配

python - `python -m unittest discover` 未发现测试

python - 如何在极坐标图中的 3 条线之间填充?

python - 使用 pandas 打开 sqlite 表时出错