在R中如何根据State变量为长度不足6位的Geoid补前导0
给DataFrame的Geoid字段补前导0
原始数据:
Geoid State 12345 Alabama 456789 Delaware
需求是把所有长度不足6位的Geoid开头补0,得到:
Geoid State 012345 Alabama 456789 Delaware
用pandas的字符串处理方法就能快速搞定,步骤如下:
- 先把Geoid列转换成字符串类型(如果原本是数值类型,数值会自动丢失前导0,必须转成字符串才能保留补的0)
- 用
str.zfill(6)方法,这个方法会自动把字符串填充到6位长度,不足的部分在开头补0,已经够6位的内容不会改动
完整代码示例:
import pandas as pd # 构造示例数据框 df = pd.DataFrame({ 'Geoid': [12345, 456789], 'State': ['Alabama', 'Delaware'] }) # 处理Geoid字段 df['Geoid'] = df['Geoid'].astype(str).str.zfill(6) # 查看结果 print(df)
如果你的Geoid列本来就是字符串类型,直接跳过转类型的步骤,只用df['Geoid'] = df['Geoid'].str.zfill(6)即可。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

