以下是我们可以从pandas map function documentation:
中读取的内容当arg是字典时,系列中不在字典中的值(作为键)将转换为NaN。但是,如果字典是定义缺少的dict子类(即提供默认值的方法),则使用此默认值而不是NaN
所以我尝试将此注释应用于此代码:
import pandas as pd
class Missing_dict(dict) :
def __init__(self,*arg,**kw):
super(Missing_dict, self).__init__(*arg, **kw)
def __missing__(self, key) :
return key
md = Missing_dict({"a" : 0})
df = pd.DataFrame([{"key" : "a", "value" : 0}, {"key" : "b", "value" : 1}])
print (df)
print (df["key"].map(md))
但是结果不是我所期望的,在我的情况下我想要从一列映射数据,如果在dictionnary中找不到值,那么我希望这个值作为结果(换句话说,我如果密钥在字典中,则为该值;否则为密钥)。
我哪里错了?