Это может быть достигнуто с помощью одной строки при инициализации. Просто используйте аргумент преобразователей .
df = pd.read_excel('filename.xlsx', converters={'ID': '{:0>15}'.format})
, поэтому вы уменьшите длину кода наполовину:)
df = pd.read_excel('filename.xlsx')
df['ID'] = df['ID'].str.zfill(15) # df['ID'] = df['ID'].apply(lambda x: '{0:0>15}'.format(x))
PS: read_csv также имеют этот аргумент.
Нет. Это не правильный алгоритм грубой силы для решения проблемы LCS. Смотрите этот случай -
AKBLC
AMBNCK
Ответ LCS этих двух строк должен быть 3. Но в вашем алгоритме он будет вычислять 2 (AK).