在使用sort_values对以上数据进行排序时,遇到了报错:
TypeError: ‘>’ not supported between instances of ‘numpy.ndarray’ and
‘str’
很是苦恼,我在想我明明没有用 ‘>’ 啊!
后来到stack overflow上搜,才突然明白,排序就是在比较大小啊。这样一想,很快就想到了解决办法。
根据报错提醒,应该是因为我的数据中存在“null” 导致的错误。
在csdn上搜了一下,明白了问题到底出现在了哪里。
在排序之前,我对数据做了一些处理,在“月份==1”时,给“月度支付金额增加” 赋空值,这里的“null” 是一个字符串类型,不可以和数值型数据一起排序。在python中,给数值型数据赋空值,可以赋值为0或者None,这样就可以进行排序了。
最终的排序结果:
另外,在这个问题的解决过程中,还明白了以下几个知识点:
- python中,如何初始化不同的变量类型为空值
变量类型 | 空值 |
---|---|
字符串 | " " |
数值 | 0 或 None |
列表 | [] |
字典 | {} |
元组 | () |
- python中的各种空值
- None: python的一种特殊的数据类型,不同于空字符串和空列表
>> print(type(None))
NoneType
- NaN: numpy/pandas下的,不是python原生的,“Not a Number” 的简称,数据类型为 “float”
>> print(type(NaN))
float
- 判断一个series或者DataFrame是否存在空值,用isnull()
- 对单独的某个值判断,用np.isnan()
-
NULL: python中没有这个“NULL”,在python中对应的就是None
-
NaT: Not a Time 的简称
该值可以存储在 datetime 数组中以指示未知或缺失的 datetime 值。