以下是我们可以从pandas 地图函数文档中读到的内容:
当 arg 是字典时,Series 中不在字典中的值(作为键)将转换为 NaN。但是,如果字典是定义missing的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))
Run Code Online (Sandbox Code Playgroud)
但结果不是我所期望的,在我的情况下,我想映射一列中的数据,如果在字典中找不到某个值,那么我希望这个值作为结果(换句话说,我想要如果键在字典中则为值,否则为键)。
我哪里错了?
| 归档时间: |
|
| 查看次数: |
5247 次 |
| 最近记录: |