使用python/pandas将唯一值与特定列及其字段匹配

使用python/pandas将唯一值与特定列及其字段匹配,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据集df,我想根据附近列中的值在列中放置某些值: 数据: dc country type eu am7 america bww uk cww eu dub1 ap hn 所需: dc country type eu am7 america bww uk cww eu dub1 ap hn 我希望根据type列中的值,使用

我有一个数据集df,我想根据附近列中的值在列中放置某些值:

数据:

dc  country type
    eu      am7
    america bww
    uk      cww
    eu      dub1
    ap      hn
所需:

dc  country type
    eu      am7
    america bww
    uk      cww
    eu      dub1
    ap      hn
我希望根据type列中的值,使用特定值填充dc列。如果类型列中的值为am7,则dc值将为1000等

dc      country type
1000    eu      am7
500     america bww
200     uk      cww
100     eu      dub1
200     ap      hn
正在做:

dc  country type
    eu      am7
    america bww
    uk      cww
    eu      dub1
    ap      hn
我相信我必须在Python和Pandas中进行映射或字典:

dc = {
  'am7': 1000,
  'bww': 500,
  'cww': 200,
  'dub1': 100,
  'hn':200
}

df['dc'] = df['type'].map(dc)
所需列未填充所需值。
感谢您的建议。

您的代码按预期工作:

df=pd.read\u fwf(io.StringIO(“”)\
dc国家类型
欧盟am7
美国bww
英国cww
欧盟dub1
ap hn\
"""))
dc={
“am7”:1000,
“bww”:500,
“cww”:200,
“dub1”:100,
‘hn’:200
}
>>>df
dc国家类型
0 NaN eu am7
1南美洲bww
南屋西湾2号
3南欧dub1
4南ap hn
@AlexK的建议是正确的,删除额外的空格(如果适用):

df = df.merge(df.select_dtypes("object").applymap(str.strip), how="right")

那应该有用。。。您得到的输出有什么问题?您包含的示例正常工作?如果不工作,可能
type
包含前导/尾随空格?您可以尝试
df['dc']=df['type'].str.strip().map(dc)