Pandas,如果原始值小于3个字符,则为值添加前缀



我有一个pandas数据帧。在cxt列中,所有字符串值都应为4个字符。有些主题是3个或更少的字符。在这些情况下,应将多个'0'放在字符串值的前面。

目前,我正在使用类似于:gdf.loc[gdf.cxt == '0', 'cxt'] = '0000'的代码来捕获某些字符串。

此外,作为一个厚颜无耻的后续操作,gdf.loc[gdf.cxt.string.contains '.', 'cxt'] = '0000'覆盖了我的所有值,而不是用'.'字符替换任何字符串。

你是说zfill:吗

df = pd.DataFrame({'ctx':['0','.x','001', 'abcd']})
df['ctx'].str.zfill(4)

输出:

0    0000
1    00.x
2    0001
3    abcd
Name: ctx, dtype: object

尝试gdf.loc[gdf.cxt.str.contains('.'), 'cxt'] = '0000'

最新更新