首页 > 解决方案 > 查找字符串中的特定数字并赋值

问题描述

我有一列包含唯一的员工 ID,其中唯一的数值(通常在 ID 的末尾)说明了他们的位置。

例如:

EmployeeID  
ABC-10  
DEF-70  
GHI-20  
BCD-70   

...

其中 10 = 纽约,20 = 巴黎,70 = 伦敦

我想创建一个循环/一段代码,它扫描 EmployeeID 的值,然后为相应的列分配位置。我已经尝试过以下方法:

df.loc[df['EmployeeID'].contains("10"), 'Location'] == 'New York'

但是我收到以下错误:

AttributeError:“str”对象没有属性“loc”

我希望实现以下目标:

EmployeeID       Location 
 
ABC-10           New York <br>
DEF-70           London <br>
GHI-20           Paris <br>
BCD-70           London <br> 

蒂亚!

标签: pythonpandasstringloopscontains

解决方案


import pandas as pd

data = ["ABC-10","DEF-70","GHI-20","BCD-70"]

df = pd.DataFrame(data, columns = ["EmployeeID"])    

dict1 = {10: "New York", 70:"London", 20:"Paris"}

print(dict1)

def get_id(text):
    id=int(text.split("-")[-1])
    return dict1[id]   

df['Locations'] = df["EmployeeID"].apply(get_id)

print (df)

推荐阅读