我有一个数据表。列之一是样品编号,看起来是这样:
0002131
dsda2123
eew12341
wewqsws1
123
如U所见,数字的长度不同。我需要达到所有==12。因此,例如,如果我有一个0002131,我只需在第一个位置添加5个零:000000002131。我的系列有900000行,我只是将它们全部放入listA
中并进行操作通过if / else。
代码:
for i in range(len(listA)):
if len(listA[i]) == 0:
print("COŚ JEST NIE TAK!")
elif len(listA[i]) == 1:
listA[i] = "00000000000"+listA[i]
elif len(listA[i]) == 2:
listA[i] = "0000000000"+listA[i]
elif len(listA[i]) == 3:
listA[i] = "000000000"+listA[i]
elif len(listA[i]) == 4:
listA[i] = "00000000"+listA[i]
elif len(listA[i]) == 5:
listA[i] = "0000000"+listA[i]
elif len(listA[i]) == 6:
listA[i] = "000000"+listA[i]
elif len(listA[i]) == 7:
listA[i] = "00000"+listA[i]
elif len(listA[i]) == 8:
listA[i] = "0000"+listA[i]
elif len(listA[i]) == 9:
listA[i] = "000"+listA[i]
elif len(listA[i]) == 10:
listA[i] = "00"+listA[i]
elif len(listA[i]) == 11:
listA[i] = "0"+listA[i]
它可以工作,但我知道这不是最好的方法。所以我以如下所示的熊猫风格尝试过:
test['SampleNumber'].where(len(test) < 1, '00000000000' + test['SampleNumber'])
test['SampleNumber'].where(len(test) < 2, '0000000000' + test['SampleNumber'])
但是我得到:Array conditional must be same shape as self.
也许可以和我分享一个比我更好的主意吗?