左对齐pandas字符串列



我有一个大型熊猫数据集,其中包含一个混乱的字符串列,例如:

72.1
61
25.73.20
33.12

我想填补空白,以匹配像XX.XX.XX这样的模式(X只是数字):

72.10.00
61.00.00
25.73.20
33.12.00

谢谢!

如何定义base_string = '00.00.00',然后在每一行填充其他字符串base_string:

base_str = '00.00.00'
df = pd.DataFrame({'ms_str':['72.1','61','25.73.20','33.12']})
print(df)
df['ms_str'] = df['ms_str'].apply(lambda x: x+base_str[len(x):])
print(df)

输出:

ms_str
0      72.1
1        61
2  25.73.20
3     33.12

ms_str
0  72.10.00
1  61.00.00
2  25.73.20
3  33.12.00

这是一个矢量化的解决方案,适用于这个特定的模式。首先在右侧用零填充,然后每隔三个字符用点替换:

df['col'].str.ljust(8, fillchar='0').str.replace(r'(..).', r'1.', regex=True)

输出:

0    72.10.00
1    61.00.00
2    25.73.20
3    33.12.00
Name: col, dtype: object

最新更新