Добавление изображения в панды DataFrame - PullRequest
0 голосов
/ 25 ноября 2018

Предположим, у меня есть DataFrame, который я хочу экспортировать в PDF.В DataFrame у меня есть следующие столбцы: Код, Имя, Цена, Нетто, Продажи.Каждая строка - это Товар.

Я хочу добавить к каждому товару в этом DataFrame изображение, которое я мог бы получить, используя BeautifulSoup. Есть ли способ добавить изображение в DataFrame ?Не ссылка, а просто изображение товара.

Более конкретно, я хочу что-то вроде этого:

enter image description here

Код:

import pandas as pd
df = pd.DataFrame([['A231', 'Book', 5, 3, 150], 
                   ['M441', 'Magic Staff', 10, 7, 200]],
                   columns = ['Code', 'Name', 'Price', 'Net', 'Sales')

#Suppose this are the links that contains the imagen i want to add to the DataFrame
images = ['Link 1','Link 2'] 

1 Ответ

0 голосов
/ 25 ноября 2018

Возможно, вам придется немного поиграть с атрибутами ширины и высоты, но это должно помочь вам начать.По сути, вы просто конвертируете изображение / ссылки в html, а затем используете df.to_html для отображения этих тегов.Обратите внимание, он не будет отображаться, если вы работаете в Spyder, но, как вы можете видеть ниже с моим выводом, он отлично работает на ноутбуках jupyter

import pandas as pd
from IPython.core.display import HTML

df = pd.DataFrame([['A231', 'Book', 5, 3, 150], 
                   ['M441', 'Magic Staff', 10, 7, 200]],
                   columns = ['Code', 'Name', 'Price', 'Net', 'Sales'])

# your images
images = ['https://vignette.wikia.nocookie.net/2007scape/images/7/7a/Mage%27s_book_detail.png/revision/latest?cb=20180310083825',
          'https://i.pinimg.com/originals/d9/5c/9b/d95c9ba809aa9dd4cb519a225af40f2b.png'] 


df['image'] = images

# convert your links to html tags 
def path_to_image_html(path):
    return '<img src="'+ path + '" width="60" >'

pd.set_option('display.max_colwidth', -1)

HTML(df.to_html(escape=False ,formatters=dict(image=path_to_image_html)))

enter image description here

Тогда у вас есть несколько вариантов того, что делать, чтобы перейти в pdf.

Вы можете сохранить как html

df.to_html('test_html.html', escape=False)

, затем просто использовать и html to pdf converter здесь , или используйте библиотеку, такую ​​как pdfkit или WeasyPrint .Я не совсем знаком с ними (я использовал только один из них давным-давно), но вот хорошая ссылка

Удачи.

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