Skip to main content
 首页 » 编程设计

python之Pandas之将前导 "0"添加到字符串值,以便所有值都等于 len

2025年05月04日11EasonJim

我有一个专栏,code_x。我将它转换为 .astype(str)。一些示例值是 45362.0、75345.0、346157.0、572575.0。我希望它们都是 6 位数。又名:045362、075345、346157、572575

我正在尝试以下方法,但它不起作用: f3[df3['code_x'].str.len() == 7] = "0"+ df3[df3['code_x'].str.len() == 7]['code_x']

建议?

请您参考如下方法:

我什至因为使用 zfill 而支持@DSM。但我认为使用 lamba 会使它更清晰、更易于阅读。

In [1]: import pandas as pd 
 
In [2]: df = pd.DataFrame([45362.0, 75345.0, 346157.0, 572575.0], columns=['code_x']) 
 
In [3]: df.code_x.apply(lambda x: str(int(x)).zfill(6)) 
Out[3]:  
0    045362 
1    075345 
2    346157 
3    572575 
Name: code_x, dtype: object 

注意:我们先将给定值转换为 int,然后再转换为字符串,以去除结果中的“.0”。