DataFrame列转字符串后仍存在.0后缀,如何去除?
解决DataFrame中数字字段转字符串后带
.0后缀的问题 问题原因
你的node.glDimension.glObject2.dbId字段在API返回的JSON中实际是浮点数类型(比如123.0),直接用astype(str)会保留小数后缀.0。
三种可行解决方法
方法一:先转整数再转字符串(最稳妥,前提是字段值都是整数型浮点数)
替换原代码中类型转换的行:df_edges["node.glDimension.glObject2.dbId"] = df_edges["node.glDimension.glObject2.dbId"].astype(int).astype(str)先通过
astype(int)去掉小数部分,再转字符串就不会有.0后缀。方法二:字符串正则替换
如果担心转整数出错(比如存在非整数值场景),可以直接替换掉末尾的.0:df_edges["node.glDimension.glObject2.dbId"] = df_edges["node.glDimension.glObject2.dbId"].astype(str).str.replace(r'\.0$', '', regex=True)用正则匹配字符串末尾的
.0并替换为空。方法三:在数据归一化时指定类型
在pd.json_normalize阶段就指定该字段为整数类型,从源头避免问题:df_edges = pd.json_normalize(edges, dtype={"node.glDimension.glObject2.dbId": int}) df_edges["node.glDimension.glObject2.dbId"] = df_edges["node.glDimension.glObject2.dbId"].astype(str)
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

