Python 在字符串中查找特定数字并赋值

Python 在字符串中查找特定数字并赋值,python,pandas,string,loops,contains,Python,Pandas,String,Loops,Contains,我有一列包含唯一的员工ID,其中唯一的数值(通常在ID的末尾)说明了他们的位置 例如: EmployeeID ABC-10 DEF-70 GHI-20 BCD-70 其中10=纽约,20=巴黎,70=伦敦 我想创建一个循环/一段代码,它扫描EmployeeID中的一个值,然后为相应的列指定位置。我尝试了以下方法: df.loc[df['EmployeeID']包含(“10”),'Location']=“纽约” 但是,我得到以下错误: AttributeError:“st

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

例如:

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

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

我想创建一个循环/一段代码,它扫描EmployeeID中的一个值,然后为相应的列指定位置。我尝试了以下方法:

df.loc[df['EmployeeID']包含(“10”),'Location']=“纽约”

但是,我得到以下错误:

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

我希望实现以下目标:

EmployeeID       Location 
 
ABC-10           New York <br>
DEF-70           London <br>
GHI-20           Paris <br>
BCD-70           London <br> 
EmployeeID位置
ABC-10纽约
DEF-70伦敦
GHI-20巴黎
BCD-70伦敦

蒂亚

发生此错误是因为
df
被定义为字符串,而不是数据帧,因此字符串没有属性
loc
。请再次检查
df
的定义

您只需正确地重新定义df,并对每个城市名称重复相同的逻辑,代码就可以工作了

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

欢迎来到StackOverflow。如果这个问题的格式正确,网站不会让你发布你的答案,因为它是没有任何解释的100%代码。你能解释一下你的答案吗?我现在已经对问题进行了分类,并使用了df.series.str.contains('10'),它可以很好地获得正确/错误的结果。但是,是否有方法返回位置为的新列?非常感谢
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)