如何在Python Pandas中格式化带符号与前导零的字符串为目标格式
Pandas列字符串格式转换方案
针对DataFrame中某列类似+0094、-0082格式的字符串,要转换成 94、-82的格式,有两种简便实现方式:
方法一:正则表达式替换
通过str.replace结合正则匹配,精准替换前缀部分:
import pandas as pd # 构造示例数据 df = pd.DataFrame({'target_col': ['+0094', '-0082', '+0105', '-0007']}) # 替换正号开头的前缀(+加前导零)为空格 df['target_col'] = df['target_col'].str.replace(r'^\+0*', ' ', regex=True) # 替换负号开头的前缀(-加前导零)为负号 df['target_col'] = df['target_col'].str.replace(r'^-0*', '-', regex=True)
执行后,target_col列的值就会变成 94、-82、 105、-7的格式。
方法二:转数值后格式化
先将字符串转为整数自动去除前导零,再按需求格式化输出:
# 构造示例数据 df = pd.DataFrame({'target_col': ['+0094', '-0082', '+0105', '-0007']}) # 转整数后,正数前加空格,负数直接保留格式 df['target_col'] = df['target_col'].astype(int).apply(lambda x: f" {x}" if x > 0 else f"{x}")
这种方法更直观,利用整数类型自动处理前导零和正号,再通过格式化添加空格。
内容的提问来源于stack exchange,提问作者Josh Johnson
相关产品推荐
相关产品推荐

