2024-10-06 12:36:26 发布
网友
我有一个csv与一列包含各种形式的标题。我需要将所有首席执行官、首席运营官、首席运营官、首席营销官等映射到“C级”;将副总裁、高级副总裁、副总裁映射到另一列中的“高级副总裁”。你知道吗
我曾经尝试过用数字来映射标题,但没能做到,而且我认为可能有一种更简单的方法。我还希望在一个列中完成它们,而不是在映射它们时为C-Level和VP-SVP设置两个列。你知道吗
附件是预期结果。你知道吗
我该怎么解决这个问题?你知道吗
df['col'] = np.where(df.column1.isin(['ceo', 'chief operating officer', 'coo', 'cmo']), 'c-level','vp-svp')
定义一个字典,使得Key是您请求的结果,值是一个可能性列表。
my_dict = {"C-LEVEL":['CHIEF',"THE CHIEF","MY CHIEF"],"VP-SVP":['VP','PRODUCT VP']}
要使用虚拟数据:
df=pd.DataFrame({"A":["CHIEF","MY CHIEF","VP","PRODUCT VP","THE CHIEF", "USER"]}) A 0 CHIEF 1 MY CHIEF 2 VP 3 PRODUCT VP 4 THE CHIEF 5 USER
创建搜索键的函数:
def yourfunc(value): for k,v in my_dict.items(): if value in my_dict.get(k): return k return "N/A"
最后,用lambda应用函数:
df['Result'] = df['A'].apply(lambda x: yourfunc(x))
期望结果:
A Result 0 CHIEF C-LEVEL 1 MY CHIEF C-LEVEL 2 VP VP-SVP 3 PRODUCT VP VP-SVP 4 THE CHIEF C-LEVEL 5 USER N/A
当您看到“N/A”结果时,您将知道您需要升级词典。你知道吗
定义一个字典,使得Key是您请求的结果,值是一个可能性列表。
要使用虚拟数据:
创建搜索键的函数:
最后,用lambda应用函数:
期望结果:
当您看到“N/A”结果时,您将知道您需要升级词典。你知道吗
相关问题 更多 >
编程相关推荐