如何使用Pandas为DataFrame数字列补前导零并限制为8位固定长度
解决方案
首先明确:数字类型无法保留前导零,处理后该列会自动转为字符串类型。
方法1:使用zfill方法(最简洁)
zfill(n)是字符串内置方法,会自动在字符串左侧补零到指定长度n,长度满足要求的字符串不会被修改。
示例代码:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'column1': [81234567, 1294569, 23479] }) # 核心处理逻辑 df['column1'] = df['column1'].astype(str).str.zfill(8)
处理后结果和期望完全一致:
| column1 |
|---|
| 81234567 |
| 01294569 |
| 00023479 |
方法2:使用格式化字符串
如果目标列确定是整数类型,也可以用格式化方法直接处理:
df['column1'] = df['column1'].apply(lambda x: f"{x:08d}")
注意事项
- 如果目标列本身已经是字符串类型,去掉
astype(str)步骤直接调用str.zfill(8)即可。 - 处理后列的类型为object(字符串),如果需要后续做数值计算,可单独备份原数值列。
内容的提问来源于stack exchange,提问作者Carlos Eduardo Abrantes
相关产品推荐
相关产品推荐

