【问题标题】:How to map images to a Pandas Dataframe from a Dictionary?如何将图像从字典映射到 Pandas 数据框?
【发布时间】:2021-01-01 16:05:17
【问题描述】:

This question 对我想做的事情有很大帮助。我现在知道如何将图像插入到熊猫数据框中,但现在我想弄清楚如何使用字典来完成。例如,我有以下df

  Name Team
0  A    ARI
1  B    BAL
2  C    ATL

我还有以下字典,其中的键与 Team 字段匹配。

images = {
'ARI':'https://upload.wikimedia.org/wikipedia/en/thumb/7/72/Arizona_Cardinals_logo.svg/179px-Arizona_Cardinals_logo.svg.png',
'ATL':'https://upload.wikimedia.org/wikipedia/en/thumb/c/c5/Atlanta_Falcons_logo.svg/192px-Atlanta_Falcons_logo.svg.png',
'BAL':'https://upload.wikimedia.org/wikipedia/en/thumb/1/16/Baltimore_Ravens_logo.svg/193px-Baltimore_Ravens_logo.svg.png'
}

我想知道如何更改我链接的问题中的以下代码,以便我可以根据Team 字段中的值显示正确的图片。

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

提前感谢您的帮助。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:
    import pandas as pd
    from IPython.display import HTML
    
    df = pd.DataFrame({'name': ['A', 'B', 'C'], 'team': ['ARI', 'BAL', 'ATL']})
    
    # given the images in a dict
    images = {'ARI':'https://upload.wikimedia.org/wikipedia/en/thumb/7/72/Arizona_Cardinals_logo.svg/179px-Arizona_Cardinals_logo.svg.png',
              'ATL':'https://upload.wikimedia.org/wikipedia/en/thumb/c/c5/Atlanta_Falcons_logo.svg/192px-Atlanta_Falcons_logo.svg.png',
              'BAL':'https://upload.wikimedia.org/wikipedia/en/thumb/1/16/Baltimore_Ravens_logo.svg/193px-Baltimore_Ravens_logo.svg.png'}
    
    # map images to team, base on keys
    df['image'] = df.team.map(images)
    
    # convert your links to html tags 
    def path_to_image_html(path):
        return '<img src="'+ path + '" width="60" >'
    
    HTML(df.to_html(escape=False, formatters=dict(image=path_to_image_html)))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2016-09-02
    • 2020-09-01
    • 1970-01-01
    相关资源
    最近更新 更多