从在另一个数据框中注册的技能分配数据框的元素

里卡多·J·马丁内斯·苏阿斯特吉

我有以下问题,一方面我有一个包含两列的数据框,人名和他们处理的技术:

import pandas as pd
import numpy as np

censo = pd.DataFrame({"Name":["Uriel","Ricardo","Rodrigo","Arion"], "Tec":[("Sas, Python"),("Python, Pyspark"),("Python, Tableau"),("Excel")]})
censo.head(10)

输出是这样的:

在此处输入图片说明

然后我有另一个数据框,它有另外两列:请求和请求需要的技术:

tec = pd.DataFrame({"Request":["001","002","003","004"], "Tec":["Python","Sas","Tableau","Excel"]})
tec.head(5)

其输出如下:

在此处输入图片说明

我想要实现的是创建一个名为“分配”的列,其中显示第一个数据帧中的人名,该数据帧最适合请求中请求的技术。

我尝试将技术的价值转换为假人,然后尝试进行匹配,但我什至不接近我需要的东西。

 a = censo['Tec'].str.get_dummies(sep=',')
 a = a.drop_duplicates()
 a = a.loc[~(a==0).all(axis=1)]
 censo_ = pd.concat([censo,a], axis = 1)
censo_.head()

在此处输入图片说明

tec['Assignment'] = censo['Name'].apply(lambda x: 'Python' in x)
tec.head()

有什么想法可以解决这个问题吗?

首先,谢谢!

贝尼

检查 str.get_dummies

out = censo.join(censo['Tec'].str.get_dummies(','))

更新

out = censo.assign(Tec=censo.Tec.str.split(',')).explode('Tec').\
            merge(tec,how='left').groupby(['Request','Tec'])['Name'].agg(list)
Request  Tec   
001      Python    [Ricardo, Rodrigo]
002      Sas                  [Uriel]
004      Excel                [Arion]
Name: Name, dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个数据框中的ID分配数据框ID

用另一个数据框元素的值替换数据框的元素

如何基于另一个数据框更改数据框的元素?

如果数据框中包含来自另一个数据框中的任何元素,如何在数据框中分配类别?

根据另一个数据框中的匹配数据更新一个数据框中的值

从另一个数据框填充一个数据框的列

用另一个数据框处理一个数据框

如何根据具有不同元素数量的另一个数据框分配值?

Python pandas数据框:数据框到另一个数据框

Pandas 数据框:搜索并将唯一值分配给另一个数据框

来自另一个数据框的熊猫多索引分配

根据另一个数据框中的列分配值列

熊猫:根据另一个数据框分配值

使用重复的键值分配另一个数据框中的列值

使用另一个数据框将值分配给多列数据框

比较2个数据框以获得另一个数据框

从另一个数据框更改值

从另一个数据框设置值

从R中的另一个数据框创建多个数据框

大熊猫-按行元素按另一个数据框过滤数据框

如何从另一个数据框中给定日期的数据框中获取元素

根据条件R将数据框的元素添加到另一个数据框

熊猫根据另一个数据框mith multi index设置元素样式

从另一个数据框的列中删除元素

从另一个数据框中选择具有相同特征的元素?

如何将熊猫系列元素传递给另一个数据框

转换Pandas数据框的数据类型以匹配另一个数据框

根据文本将值从一个数据框平均分配到另一个数据框

根据主题编号将值从一个数据框分配给另一个数据框