Беда с пандами серии. Попытка раздеть или заменить с помощью Regex - PullRequest
0 голосов
/ 20 июня 2019

В кадре данных pandas (df) у меня есть серия (df ['reports']), которую я хочу очистить.

Каждая строка в серии содержит мусор, который я хочу удалить из него, например: ДФ [ 'отчеты'] работе [10] * * 1003

[{'url': 'http://208.xx.xx.19/uploads/media/default/0001/02/e633f1d80a61d17e041ffd994355ccb618a024e5.pdf'}]

Что я хочу удалить из этого: (в двойных кавычках)

"[{'url': '" слева

и

"'}]" справа

Я уже пробовал:

df['reports'].str.lstrip('url') #this didn't work, even just to remove the 'url' part
df['reports'].replace({'[{}]'}regex=True,inplace=True,to_replace=r'\[\{\'\w{3}',value=r'
df['reports'].replace(regex=True,inplace=True,to_replace=r'\[\{\'url\'',value=r'')
df['reports'] = df['reports'].map(lambda x: x.lstrip('\[{\'url\': \'').rstrip('\'}]\''))

Сейчас я пытаюсь:

df['reports'].replace({'\[\{\'url\'':' '},regex=True,inplace=True)

Я ожидаю, что по крайней мере одно из этих решений будет либо убирать персонажей, которых я не хочу, и давать мне что-то вроде «http://208.xx.xx.19/uploads/media/default/0001/02/e633f1d80a61d17e041ffd994355ccb618a024e5.pdf" для каждой« ячейки »в серии.

РЕДАКТИРОВАТЬ: Создание фиктивной базы данных здесь в качестве примера того, как может выглядеть желаемый результат:

In: df['reports']

Out:
*reports*
http://208.xx.xx.19/uploads/media/default/0001/02/e633f1.pdf
http://208.xx.xx.19/uploads/media/default/0001/02/exyz2.pdf
http://208.xx.xx.19/uploads/media/default/0001/02/e633342.pdf
http://208.xx.xx.19/uploads/media/default/0001/02/ashj39.pdf
http://208.xx.xx.19/uploads/media/default/0001/02/asdji34q2.pdf
Name: reports, Length: 155, dtype: object

1 Ответ

0 голосов
/ 20 июня 2019

Вы ищете что-то подобное?

df['reports'].str.replace("^\[{'url': ","").str.replace("}\]$","")

Первый «str.replace» ищет шаблон «[{'url':» в начале, а второй для «}]» в конце.

РЕДАКТИРОВАТЬ: Поскольку записи серии на самом деле являются списком словарей, решение было:

df['reports'].apply(lambda x:x[0]['url'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...