Python:数据类型转换与空值处理
Python:int,float,str之间的转换
数据类型转换
主要介绍int,float,str之间的相互转换,转换方向见上图.
其它数据转换的内置函数
python各种类型转换-int,str,char,float,ord,hex,oct等_Python_sunlylorn的专栏-CSDN博客
Pandas中数据列含空字符串的处理
为了便于说明,以数据框A
为例,
import numpy as np
import pandas as pd
#为了便于描述先构造出一个数据框
A=pd.DataFrame({'A':[1,2,3,np.nan,1],"D":list('asdas')})
A=A.astype('str')#然后全部全换成str
A['B']=A['A'].astype('float')#然后再将数值列('A')转回
A
- 查看对应的位置的空值
#字符串下的空值
print(f"A.loc[3,'A'],输出结果:{A.loc[3,'A']}('nan')")
#数值下的空值
print(f"A.loc[3,'B'],输出结果:{A.loc[3,'B']}(nan)")
- 判断是否是空值?
#(1)判断是不是空值
print(f'第一种方法:{A.loc[3,"B"]==np.nan}')
#(2)使用内置函数检查
print(f"第二种方法:{A['B'].isna().tolist()}")#存在
令人惊讶的是:第一种方法下两者居然不相等。然后使用type
函数进行查看:
一个是<np.float64>,另一个是np.float
可以将前者转换成
最主要的原因是:参考链接
np.nan
不是一个“空”对象,用np.nan is None
判断是False;这种情况下判断空值只能用np.isna()(或者pd.isnull())
这也引出的一个新问题:数据框创建时的空值应该用np.nan
还是None
?
数据框创建时的空值应该用np.nan
还是None
?
与上面的情况类似,就算用None
也会出现类似的问题,如下图所示。
用
np.nan
或者None
创建了数据框,但是使用数据框切片的方法,发现两者居然不相等,真的是匪夷所思。
numpy 学习汇总38- 缺失数据,数据异常,NaN& None的区别( 初步学习 tcy)