我是python的初学者。我在我的Windows 7中使用python 3.X 我有一个熊猫系列。目前它包含1544252个8位数字的int64类型的记录。最后几条记录的样本如下:
1544241 87526878
1544242 92480921
1544243 61479211
1544244 57572826
1544245 25527504
1544246 69477558
1544247 35477532
1544248 12475315
1544249 75480854
1544250 68527476
1544251 87480808
我需要在我的系列中添加前导零,以使8位数到10个字符长的字符串。这是我想要的输出。
1544241 0087526878
1544242 0092480921
1544243 0061479211
1544244 0057572826
1544245 0025527504
1544246 0069477558
1544247 0035477532
1544248 0012475315
1544249 0075480854
1544250 0068527476
1544251 0087480808
请您以时间有效的方式建议我如何做到这一点?
提前致谢
答案 0 :(得分:1)
如果你的系列被称为s
'00'+s.astype(str)
作品。
答案 1 :(得分:0)
这样的东西?
df['tendigits'] = df['eightdigits'].apply(lambda n: '00' + str(n))
答案 2 :(得分:0)
s = pd.Series(map(lambda x: '%010d' %x, s))
s
是你的系列。
答案 3 :(得分:0)
你可以使用左边的zfill
函数填充前导零,并将所需输出作为参数。
如果s
是你的系列,你可以这样做:
s.apply(lambda x : x.zfill(10))
答案 4 :(得分:0)
这是一种矢量化方式:
import pandas as pd
df = pd.DataFrame([[1544241, 87526878],
[1544242, 92480921]],
columns=['A', 'B'])
df.B = df.B.astype(str).str.zfill(10)
# A B
# 0 1544241 0087526878
# 1 1544242 0092480921
答案 5 :(得分:0)
有builtin function for padding in pandas,
并且您必须在之前转换为字符串:
s.astype(str).str.pad(width=10, side='left', fillchar='0')
我测试了它并且有效。