Adding image to pandas DataFrame

前端 未结 1 657
甜味超标
甜味超标 2020-12-01 17:32

Suppose I have a DataFrame I want to export to a PDF. In the DataFrame I have the following columns: Code, Name, Price, Net, Sales. Every row is a Product.

I want to

相关标签:
1条回答
  • 2020-12-01 18:19

    You'll probably have to play a bit around with width and height attributes, but this should get you started. Basically, you're just converting the image/links to html, then using the df.to_html to display those tags. Note, it won't show if you're working in Spyder, but as you can see below with my output, works fine through jupyter notebooks

    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)))
    

    Then you have some options of what to do there to go to pdf.

    You could save as html

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

    then simply use and html to pdf converter here, or use a library such as pdfkit or WeasyPrint. I'm not entirely familiar with those (I only used one of them once a long time ago), but here's a good link

    Good luck.

    0 讨论(0)
提交回复
热议问题