Я хотел бы изменить необработанные данные в df1 в форме df2
df1
df2
df1 = pd.DataFrame([['ABCDE'], ['RTY12'], ['SDWERTESR'],['R']], columns=[1]) df2 = pd.DataFrame([['AB-CD-E'], ['RT-Y1-2'], ['SD-WE-RT-ES-R'],['R']], columns=[1])
Кажется, чтобы сделать трюк:
>>> df1[1].apply(lambda s: ''.join('%s-' % c if i % 2 == 0 else c for i, c in enumerate(s, 1))) 0 AB-CD-E 1 RT-Y1-2 2 SD-WE-RT-ES-R 3 R Name: 1, dtype: object
Это не красиво, но сделало бы работу:
In []: import itertools as it df1[1].apply(lambda s: '-'.join(''.join(x) for x in it.zip_longest(*[iter(s)]*2, fillvalue=''))) Out[]: 0 AB-CD-E 1 RT-Y1-2 2 SD-WE-RT-ES-R 3 R Name: 1, dtype: object