使用pandas将Excel导入的float64类型转为无.0后缀的7位字符串
解决方案
出现该问题的核心原因是直接将float类型转换为字符串时,pandas会默认保留.0作为小数后缀,你之前替换操作失效大概率是没有限定仅匹配末尾的.0,导致误替换了其他位置的字符。
可以根据你的数据场景选择以下两种可行方案:
- 方案一(优先推荐,适合列中所有值均为无小数的整数类float、且无空值的场景):先将列转为int类型去掉小数部分,再转字符串后补零
df["columnA"] = df["columnA"].astype(int).astype(str).str.zfill(7)
- 方案二(适配存在空值或少量带小数的场景):用正则仅替换字符串末尾的
.0后缀,再补零
df["columnA"] = df["columnA"].astype(str).str.replace(r'\.0$', '', regex=True).str.zfill(7)
两种方案都可以将原1.5934e+06格式的float值转换为你需要的1593396格式7位字符串。
内容的提问来源于stack exchange,提问作者I_m_Possible
相关产品推荐
相关产品推荐

