Удаление нежелательной информации из ряда в pandas dataframe

#python #pandas

#python #pandas

Вопрос:

Как мне извлечь текст в столбце «Мои изображения» из /images/ until .png

У меня есть фрейм данных pandas, содержащий следующую информацию

 >>> animals
  

введите описание изображения здесь

Столбец, которым я хочу управлять, — это image столбец

 0     {'url': '/images/bengal-tiger_image.png', 'lic...
1     {'url': '/images/giant-panda_image.png', 'lice...
2     {'url': '/images/blue-whale_image.png', 'licen...
3     {'url': '/images/asian-elephant_image.png', 'l...
4     {'url': '/images/gorilla_image.png', 'licence'...
5     {'url': '/images/snow-leopard_image.png', 'lic...
6     {'url': '/images/orangutan_image.png', 'licenc...
7     {'url': '/images/sea-turtle_image.png', 'licen...
8     {'url': '/images/black-rhino_image.png', 'lice...
9     {'url': '/images/african-penguin_image.png', '...
10    {'url': '/images/red-panda_image.png', 'licenc...
11    {'url': '/images/polar-bear_image.png', 'licen...
Name: image, dtype: object
  

Моя текущая попытка заключается в следующем:

 animals['image'] = animals.apply(lambda x: x['image'](len["/images/":]))
  

Но это приводит к следующей ошибке:

 KeyError: 'image'
  

Любые предложения приветствуются, спасибо

Ответ №1:

 left_string = '/images/'
right_string = '.png'

animals['image_text'] = animals['image'].apply(lambda x: x['url'][len(left_string):len(x['url'])-len(right_string)])
  

Помните, что x — это словарь, поэтому вам нужно использовать «url» в качестве ключа.

Комментарии:

1. Я, наконец, понимаю, для чего нужна часть «url», большое вам спасибо!

2. Я вижу, что вы там сделали, это первый фрагмент кода, который я пробовал, который сработал. Я получил текст просто отлично, но, возможно, я не понял, я пытаюсь извлечь как /image /, так и .png, поскольку это часть ссылки, которую я пытаюсь использовать

3. Извините за спам комментариев, благодаря вашей помощи я понял, что мне нужно было сделать, и я это исправил. Большое вам спасибо! Ниже приведен код, который мне был нужен animals[‘image_text_2’] = animals[‘image’].apply(лямбда x: x[‘url’])

4. Попался! По крайней мере, теперь вы знаете, как обрезать начало или конец, если вам когда-нибудь понадобится.