我有一个专栏,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”。
关于python - Pandas - 将前导 "0"添加到字符串值,以便所有值都等于 len,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243763/