python - 查找字符串中的特定数字并赋值
问题描述
我有一列包含唯一的员工 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>
蒂亚!
解决方案
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)
推荐阅读
- vagrant - OSError:[Errno 26] 文本文件忙:'baremetrics'
- android - 不更新应用:修复您的应用违反政策的问题
- python - 全局错误处理以获得更好的 KeyError 处理
- python - python - 附加到类的单个实例的新项目导致所有实例都更新为相同的值
- php - 使用选定的数据创建集合
- python - psycopg2.errors.DatatypeMismatch:AND 的参数必须是布尔类型,而不是文本类型
- python - Python中基于派生运算符的比较
- wpf - 绑定到 Datagrid 中的 Combobox
- javascript - 用 replaceChild() 替换现有的 DOM-Element
- java - 用多个 XML 标签包装而不创建不同的类 + Jackson + Java