【发布时间】:2020-06-20 17:53:16
【问题描述】:
我想创建一个标记为Region 的新列,它将整数范围与通过字典显示的区域相关联。但是,有一个条件:子细分市场需要是澳大利亚。
import pandas as pd
import numpy as np
df = pd.read_excel(r'/Users/Desktop/dictionary.xlsx')
mydict = {"NSW": range(1000,1209)}
if df['Sub-Segment'] == "Australia":
df['Region'] = df['Postal Code'].map(mydict)
数据框如下所示:
Sub-Segment Postal Code
Australia 1001
Australia 1002
Australia 1209
Mexico 1004
想要的数据框是这样的:
Sub-Segment Postal Code Region
Australia 1001 NSW
Australia 1002 NSW
Australia 1209 NSW
Mexico 1004 Other
我尝试了上述方法并收到以下错误消息:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
【问题讨论】:
-
所以,只是为了正确理解。你有一本字典,其中地区是关键,邮政编码是价值?或者你有一个字典,其中区域是键,值是列表/范围或值?
标签: python pandas dictionary mapping