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)

posted @   LgRun  阅读(4942)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示