首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符串中查找特定数字并赋值

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

Stack Overflow用户
提问于 2020-08-03 11:07:13
回答 2查看 63关注 0票数 1

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

例如:

代码语言:javascript
复制
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’

我希望实现以下目标:

代码语言:javascript
复制
EmployeeID       Location 
 
ABC-10           New York <br>
DEF-70           London <br>
GHI-20           Paris <br>
BCD-70           London <br> 

蒂娅!

EN

回答 2

Stack Overflow用户

发布于 2020-08-03 12:06:01

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2020-08-03 11:10:01

之所以会发生此错误,是因为df被定义为字符串,而不是DataFrame,因此字符串没有属性loc。请再次检查您对df的定义。

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

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63228314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档