use*_*906 4 python dictionary missing-data
我有一个缺少值的字典(密钥在那里,但相关的值是空的).例如,我想要下面的字典:
dct = {'ID':'', 'gender':'male', 'age':'20', 'weight':'', 'height':'5.7'}
Run Code Online (Sandbox Code Playgroud)
要改为这种形式:
dct = {'ID':NaN, 'gender':'male', 'age':'20', 'weight':NaN, 'height':'5.7'}
Run Code Online (Sandbox Code Playgroud)
我怎样才能以最省时的方式写出来呢?
您可以使用字典理解.另外正如评论中所指出的那样,dict用Python 命名是不好的做法:
dct = {'ID':'', 'gender':'male', 'age':'20', 'weight':'', 'height':'5.7'}
dct = {k: None if not v else v for k, v in dct.items() }
print(dct)
Run Code Online (Sandbox Code Playgroud)
输出:
{'ID': None, 'gender': 'male', 'age': '20', 'weight': None, 'height': '5.7'}
Run Code Online (Sandbox Code Playgroud)
只需替换None为您想要的任何默认值.
在您的问题中,您想要替换为NaN.
您可以使用以下任何一种方法:
float('nan') 如果你使用的是Python 2.x,或者使用Python <3.5
math.nan 适用于Python 3.5+
numpy.nan 运用 numpy