您可能需要稍微调整一下宽度和高度属性,但这应该可以帮助您入门。基本上,您只需将图像/链接转换为 html,然后使用 df.to_html 来显示这些标签。请注意,它不会显示您是否在 PyCharm、Spyder 等 IDE 中工作,但正如您在下面的输出中看到的那样,通过 jupyter 笔记本可以正常工作
import pandas as pd
from IPython.core.display import display,HTML
df = pd.DataFrame([['A231', 'Book', 5, 3, 150],
['M441', 'Magic Staff', 10, 7, 200]],
columns = ['Code', 'Name', 'Price', 'Net', 'Sales'])
# your images
images1 = ['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']
images2 = ['https://static3.srcdn.com/wordpress/wp-content/uploads/2020/07/Quidditch.jpg?q=50&fit=crop&w=960&h=500&dpr=1.5',
'https://specials-images.forbesimg.com/imageserve/5e160edc9318b800069388e8/960x0.jpg?fit=scale']
df['imageUrls'] = images1
df['otherImageUrls'] = images2
# convert your links to html tags
def path_to_image_html(path):
return '<img src="'+ path + '" width="60" >'
pd.set_option('display.max_colwidth', None)
image_cols = ['imageUrls', 'otherImageUrls'] #<- define which columns will be used to convert to html
# Create the dictionariy to be passed as formatters
format_dict = {}
for image_col in image_cols:
format_dict[image_col] = path_to_image_html
display(HTML(df.to_html(escape=False ,formatters=format_dict)))
然后您可以选择如何转到 pdf。
你可以另存为html
df.to_html('test_html.html', escape=False, formatters=format_dict)
然后只需使用 html 到 pdf 转换器here https://html2pdf.com/,或使用诸如pdfkit https://pypi.python.org/pypi/pdfkit or 威易印刷 http://weasyprint.org/。我对这些并不完全熟悉(很久以前我只使用过其中一个),但这里有一个很好的link https://stackoverflow.com/questions/23359083/how-to-convert-webpage-into-pdf-by-using-python
祝你好运。