Как я могу удалить начальные нули и преобразовать букву алфавита в число?

#pandas

Вопрос:

У меня есть столбец pandas df со значениями, подобными этому: 000000000056H, 000000000193E. Мне нужно удалить начальные нули и изменить последнюю букву на соответствующее число, например, a = 1, e = 5 и т.д. В этих примерах значения должны быть 568 и 1935.

Я пытался преобразовать в int, но это не работает, вероятно, из-за конечного символа.

Я попробовал .strip(«0»), но получил ошибку «Серия» объект не имеет атрибута «полоса»

Может ли кто-нибудь предложить какую-либо помощь в этом вопросе? Я новичок в python, так что это выходит за рамки моих очень ограниченных знаний!

Тиа

Ответ №1:

IIUC,

 import string
import pandas as pd

s = pd.Series(['0000000056H', '00000000193E'])
repdict = {v:str(k) for k, v in dict(enumerate(string.ascii_uppercase, start=1)).items()}
s.str.strip('0').replace(repdict, regex=True)
 

Выход:

 0     568
1    1935
dtype: object
 

Комментарии:

1. это выглядит здорово, как бы вы применили это к колонке?

2. Вместо s используйте df[‘colname’].

Ответ №2:

это сработало для меня — большое спасибо

импорт строки импорт панд в качестве pd

repdict = {v:str(k) для k, v в dict(перечислить(строка. ascii_uppercase, начало=1)).элементы()} s.str.полоса(‘0’).заменить(repdict, регулярное выражение=True)

Комментарии:

1. @вместо того, чтобы публиковать это здесь, вы можете принять соответствующее решение. Пожалуйста, удалите этот ответ.