在 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
我的 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