我有一个大型熊猫数据集,其中包含一个混乱的字符串列,例如:
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