我有一个Pandas 数据框,它有一列邮政编码,我想在邮政编码中加上前导零,这样它们都有五位数.

这是我使用的代码,它正确地识别长度小于5位的值,但没有添加前导零使其长度为5.它还正确地跳过了带有空单元格的5位长的值.值以浮点数的形式传入,因此我将它们转换为字符串.

以下是我使用的代码:

df_tellall['zipcode'] = df_tellall['zipcode'].astype(str)
df_tellall['cleanzip'] = df_tellall['zipcode'].apply(lambda x: str(x).zfill(5)  if len(str(x))<5 else "")

但它不会加上前导零.

zipcode cleanzip
67509
4759 4759

任何帮助都将不胜感激.

推荐答案

try :

# convert "zipcode" to string (if necessary):
df["zipcode"] = df["zipcode"].astype(str)

# cleanzip will become "" when length >= 5, otherwise fill it with leading zeros:
df["cleanzip"] = np.where(
    df["zipcode"].str.len() < 5, df["zipcode"].str.zfill(5), ""
)
print(df)

打印:

  zipcode cleanzip
0   67509         
1    4759    04759

Python-3.x相关问答推荐

如何验证具有内部json字符串的json字符串?

我没有';无法理解此TemplateDoesNotExist错误

如何使用正则表达式通过反向搜索从链接中获取特定文本

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

如何向 scikit-learn 函数添加类型提示?

Einsum 对于张量乘法很慢

当我判断另一个 checkButton 时,如何判断两个 python tkinter checkButtons?

考虑到Pandas 系列中的不同索引,如何正确估计两列的百分比变化? Python相关

将元组列表转换为以整个元组为键的字典列表

正则表达式来识别用 Python 写成单词的数字?

通过点和线计算CV2 Homography

通过附加/包含多个列表来创建 nDimensional 列表

从 h264 帧解析数据包时 PyAV 不一致

Python - 如何从同一台客户端机器运行多个Flask应用程序

二进制文件的 Python 3 和 base64 编码

接收导入错误:没有名为 *** 的模块,但有 __init__.py

在python中打印下标

当 None 被传递时,如何将默认值应用于 python 数据类字段?

map 对象不是 JSON 可序列化的

在 linux mint 上安装 python3-venv 模块