首页 > 解决方案 > 满足特定条件时为特定列的行添加值

问题描述

我有一个带有 ZIP 列的 pandas 数据框,其中包含许多邮政编码。

但是,我在 .xlsx 文件中获取源数据。在 Excel 中,此列是一个数字字段。这就是 Excel 忽略通常以零开头的邮政编码的第一个字符 0 的原因。

通常,我国的邮政编码有五位数。

现在,我想再次在我的数据框列“ZIP”中重新填充零。缺少零的行很容易发现,因为它们有 4 个字符而不是 5 个。

2314
1234
1234
4322
1234
1234
4323
97862
43242
43212
43213

如何在“ZIP”列中的所有行中添加“0”,其中只有字符而不是正常的五个?

我知道我可以得到这样的前导零:

missing_zero = "0"
df['ZIP'] = missing_zero + df['ZIP'].map(str)

但这会将零添加到所有行,而不仅仅是缺少零的行。

我将不胜感激有关如何添加where 字符长度 = 4 逻辑的任何见解

提前致谢!

标签: pythonpandas

解决方案


如果您的列被格式化为字符串,请尝试此操作。

df['zip'].str.zfill(5)

推荐阅读