1、在python中在dataframe中None会被当做不存在,不统计在内,在sum()和mean()的时候不计算在内,这样就不用手动去进行去除0的操作啦!
注意:是赋值为None,而不是np.NaN
2、元素如果是np.float64类型的,可以用df.round(3)等四舍五入的方法来操作,速度很快,
注意:一定要是np.float64的,如果是float的类型的是不行的!如果某些列是float类型,则对这些列进行round()操作会失效,而np.float64的列操作是有效的。
3、可以用这个把NaN替换为0,这是打补丁的方法,尽量不用。
sums = sums.where(sums.notnull(), 0) # 将dataframe中的NaN 替换为 0
4、默认的时候,Dataframe中数字都是np.float64, 如果对某一列的某一个值的类型进行了改变,比如赋值为Decimal(‘1.1”) 则这一列的其他数字类型就会变成float 而不是np.float64了。而且变不回来了。
5、df.round(3) 函数只对整列都是np.float64的数字有效!对于其他类型(float、decimal)则自动失效。
6、经过df.mean() 以后,类型是pandas.core.series.Series,如果成功的话,不论df里是什么类型的,df.mean()里面的数字类型就又变成了np.float64的了,那么使用df.mean().round(3)方法是可行的