как сохранить четыре последние буквы серии? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть серия слов, из которых я хочу сохранить только четыре последние буквы:

X = data['stem']
0       abalanz
1       abander
2       abandon
3        abanic
4        abarat

3029       best
3030        bib
3031       bolb
3032        Laz
3033       zurz

Я пробовал str.replace, но это не повлияло на серию

X = pd.Series(X).str.replace('[-4:]', '', regex=False)

Я пытался преобразовать серию в список, а затем работать с ним, но это сохранило только четыре последних элемента списка.

test = [X]
plop = [x[-4:] for x in test]
[3030     bib
 3031    bolb
 3032     Laz
 3033    zurz
 Name: stem, dtype: object]

Что я не понимаю, так это то, что эта функция работает, когда я использовать его в другом списке

test = ['abbbb','acccc','adddd']
plop = [x[-4:] for x in test]
['bbbb', 'cccc', 'dddd']

Ответы [ 3 ]

1 голос
/ 21 апреля 2020

Вы можете преобразовать столбец (серию) в строку и сделать срез

X = data['stem'].str[-4:]

Результат:

0    lanz
1    nder
2    ndon
3    anic
4    arat
5    zurz
0 голосов
/ 21 апреля 2020

Пожалуйста, попробуйте это, у меня это сработало.

li = ['abalanz', 'abander', 'abandon', 'best', 'bib']
df = pd.DataFrame(li, columns=['stem'])

df

    stem
0  abalanz
1  abander
2  abandon
3     best
4      bib

df['stem'] = df['stem'].apply(lambda row: row[-4:])

df
   stem
0  lanz
1  nder
2  ndon
3  best
4   bib
0 голосов
/ 21 апреля 2020

Это должно работать:

X = data['stem'].apply(lambda x: x[-4:])
...