Python的缺失值为None对象,其中dtype=object表示Numpy认为由于这个数组是python对象构成的,因此将其类型判断为object ,如下
import numpy as np
import pandas as pd
vals1 = np.array([1, None, 3, 4])
vals1
out:
array([1, None, 3, 4], dtype=object)
使用Python对象构成的数组就意味着如果你对一个包含None的数组进行累积操作,比如sum()或者min(),会出现类型错误,TypeError: unsupported operand type(s) for +: 'int' and 'NoneType',因为在python中没有定义整数与None之间的加法运算。
vals1.sum()
TypeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_10416\1005568101.py in 1 #使用Python对象构成的数组就意味着如果你对一个包含None的数组进行累积操作,比如sum()或者min(),会出现类型错误 ----> 2 vals1.sum()
D:\Program Files (x86)\anaconda3\lib\site-packages\numpy\core_methods.py in _sum(a, axis, dtype, out, keepdims, initial, where) 46 def _sum(a, axis=None, dtype=None, out=None, keepdims=False, 47 initial=_NoValue, where=True): ---> 48 return umr_sum(a, axis, dtype, out, keepdims, initial, where) 49 50 def _prod(a, axis=None, dtype=None, out=None, keepdims=False,
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
本文来自自学《python数据科学手册》中的一部分,欢迎一键三连和打赏,你的鼓励将是我前进的动力。