использование str.replace () для удаления n-го символа из строки в pandas кадре данных - PullRequest
2 голосов
/ 30 января 2020

У меня есть pandas фрейм данных, который состоит из строк. Я хотел бы удалить n-й символ из конца строк. У меня есть следующий код:

DF = pandas.DataFrame({'col': ['stri0ng']})
DF['col'] = DF['col'].str.replace('(.)..$','')

Вместо удаления третьего до последнего символа (в данном случае 0), он удаляет 0ng. Результат должен быть string, но он выдает stri. Где я не прав?

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Вы можете заменить один символ, за которым следуют n-1 символы в конце строки :

DF['col'] = DF['col'].str.replace('.(?=.{2}$)', '')

      col
0  string

Если вы хотите убедиться, что вы только удаляя цифры (чтобы 'string' в одной специальной строке не изменялось на 'strng'), затем используйте что-то вроде '[0-9](?=.{2}$)' в качестве шаблона.

1 голос
/ 30 января 2020

Другой способ использования pd.Series.str.slice_replace:

df['col'].str.slice_replace(4,5,'')

Вывод:

0    string
Name: col, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...