为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python Pandas 中搜索列元素和对应的映射?

如何在 Python Pandas 中搜索列元素和对应的映射?

Smart猫小萌 2023-06-20 13:28:59
我有一个数据框df1,如下所示,它有一个标签列表。                       tags            0            label            0         document            0             text            0            paper            0           poster                     ...                21600         wood            21600      hot tub            21600          tub            21600      terrace            21600      blossom还有另一个数据框df2,它映射到 df 中存在的标签,映射到列名“name”。                name        iab        0   abies       Nature and Wildlife         1   absinthe    Food & Drink            2   abyssinian  Pets            3   accessories Style & Fashion         4   accessory   Style & Fashion           ...   ... ... ... ...        1595 rows × 4 columns本质上,这个想法是在 df2 中搜索与 df1 中的标签相对应的列“名称”以找到相应的“iab”映射并输出具有两列的 CSV - 标签及其对应的“iab”映射。输出看起来像这样:                        tags      iab            0            label    <corresponding iab mapping                                    to 'name' found in df2>            0         document            0             text            0            paper            0           poster                     ...                21600         wood            21600      hot tub            21600          tub            21600      terrace            21600      blossom我需要帮助才能实现这一目标。先感谢您!笔记:我试过的是    df_iab[df_iab['name'].isin(df['image_CONTAINS_OBJECT'])]但这只会将 df2 缩减为与“标签”匹配的“iab”,但不会真正执行搜索并映射找到的值。
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

合并:

new_df = df1.merge(df2, how='left', left_on='tags', right_on='name')


查看完整回答
反对 回复 2023-06-20
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

另一种方法是使用.map将iab详细信息从传输df2到df1。


df1['iab']=df1.tags.map(dict(zip(df2.name,df2.iab)))

怎么运行的


#come up with a dictionary of name and `iab` in `df2`.


d=dict(zip(df2.name,df2.iab))


# Map the dict to df1 using the tag column


df1.tags.map(d)


查看完整回答
反对 回复 2023-06-20
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信