最近反复遇到这些问题,一种是读取excel出现了空值,一种是读取其他的数据库表出现了空值,经过加工之后再入库,直接报错!为了保证数据的一致性,又不能把带空值的行通通删掉,我们一般是把这些空值,在python就是为NaN,变成None
这是通用的办法
dft = dft.where(pd.notna(dft), None)
一般大部分空值都可以这么解决,但是依然会发现有漏网之鱼,那就只能针对具体的列解决
dft[‘diskCapacity’] = dft[‘diskCapacity’].replace({np.nan: None})
一般这样也都解决了,但是我竟然发现还有解决不了的情况如下图!
我个人估计这跟pandas的版本有关系,折腾了好一阵,最终解决方案是
dft[‘diskCapacity’].fillna(np.nan).replace({np.nan: None})
对,首先用空值填空值,然后再replace就可以了,看起来好像多此一举,但确实能解决