Pandas中处理字符串列:移除Identifier列的.0后缀问题
解决方法:移除字符串列末尾的
.0后缀 你的问题出在正则表达式的通配符上:.在正则里是匹配任意单个字符的符号,不是字面意义的点。所以你写的'.0'会把所有“任意字符+0”的组合都删掉,比如10769289.0里的10会被匹配成1(任意字符)+0,导致开头的1和0都被删掉,才得到错误结果。
给你几个靠谱的解决办法:
方法1:精确匹配末尾的
.0(推荐)
转义点号,同时用$限定只匹配字符串结尾的.0,避免误删中间的内容:Dataframe["Identifier"] = Dataframe["Identifier"].str.replace(r"\.0$", "", regex=True)如果你不想用正则,也可以直接指定
regex=False,让方法只替换字面的.0:Dataframe["Identifier"] = Dataframe["Identifier"].str.replace(".0", "", regex=False)方法2:类型转换法
因为这些值本质是浮点数转来的字符串,直接转成整数再转回字符串更省心:Dataframe["Identifier"] = Dataframe["Identifier"].astype(float).astype(int).astype(str)
内容的提问来源于stack exchange,提问作者Juan Diego Torres
相关产品推荐
相关产品推荐

