在 pandas 列数据框中的 1 位数字前添加一个零

Add a zero before 1 digit number in a column pandas dataframe

我的 pandas 数据框中有一列包含法国城市的公社。这是一个例子:

index Com
1 Paris 3
2 Paris 17
3 Marseille 5
4 Abainville
5 Aast
6 Marseille 15
7 Lyon 4

除非我想在单个数字中添加 0 以获得此:

index Com
1 Paris 03
2 Paris 17
3 Marseille 05
4 Abainville
5 Aast
6 Marseille 15
7 Lyon 04

我能做什么?

df.Com = df.Com.str.replace(r"\D(\d)$", r" 0")

你可以看到regex demo。它会在字符串末尾查看非数字和单个数字。捕获单个数字(在 </code> 中)并用 0 填充它。</p> <p>得到</p> <pre><code>>>> df index Com 0 1 Paris 03 1 2 Paris 17 2 3 Marseille 05 3 4 Abainville 4 5 Aast 5 6 Marseille 15 6 7 Lyon 04

使用zfill方法补零。

df = df.convert_dtypes()
df.Com = df.Com.astype(str).str.zfill(2)

使用您显示的示例,请尝试执行以下操作。使用 Pandas str.replace 函数。

df['Com'].str.replace(r"^(\S+)(\s+)(\d)$", r"\g<1>\g<2>0\g<3>")

输出如下:

   index           Com
0      1      Paris 03
1      2      Paris 17
2      3  Marseille 05
3      4    Abainville
4      5          Aast
5      6  Marseille 15
6      7       Lyon 04