在熊猫列中的字符串上添加零,具体取决于长度

时间:2019-05-30 09:43:14

标签: python string pandas

我有一个数据表。列之一是样品编号,看起来是这样:

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.

也许可以和我分享一个比我更好的主意吗?

0 个答案:

没有答案