Как вставить знак в каждые два бита в кадре данных - PullRequest
0 голосов
/ 31 января 2019

Я хотел бы изменить необработанные данные в 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])

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Кажется, чтобы сделать трюк:

>>> 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
0 голосов
/ 31 января 2019

Это не красиво, но сделало бы работу:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...