numpy.nan Nan

每次读取文件啊

都只有int float object

Object类型: 默认情况下,包含字符串的列被定义为 object。这种类型可以包含多种数据类型,但通常存储字符串。

Int64 string category都是pandas自带了,

所有每次读取都要转化各种,可以读取dtype就指定,不用单独指定哈

但是如果用pkl这种文件,就不存在了

df = pd.read_pickle("清洗好的数据.pkl")

缺失值(numpy.nan)--float

NaN 是显示出来的样子,说明缺少值

真正的值是 np.nan, 相当于一个数值 是NaN, 区别于空值,空字符串,无法区别啊

在 Jupyter / IPython 里,系统会自动帮你定义: 写NaN不会报错,系统帮忙定义成numpy.nan

numpy 自带

类型:float(浮点数)

pandas 读取文件时默认空值

只能用于:float64 / object / category

一进整数列 强制变 float

因为 np.nan 是 float,不能放进 int

只要读 Excel/CSV 有空单元格,pandas 就自动填 np.nan

把numpy.nan当成float类型+空值判断

isna ntna fillan

np.nan in

numpy.NaN = 数字空值

None(Python 原生)

Python 自带的空值

类型:NoneType

作用:表示 "空、无"

放进 pandas 会自动变:

放入 object 列 → 保持 None

放入数值列 → 变成 np.nan

放入新版 string/Int64 → 变成 pd.NA

int Int64

int:不能存空值

Int64:pandas 专门做的可空整数类型

它天生就支持空值,所以遇到 NaN 直接变成 pd.NA

str string

np.nan → astype (str) → 变成字符串 'nan'

str = 老版本,对应(object),空值卫np.nan,是floatl类型,这一列还有str类型,是混合的。

string = 新版本(专用字符串),空值变成pd.NA

boolean Int64 stirng 才可以用pd.NA

pd.NA 无类型

pandas.NA--String, Int64类型识别到

只能手动产生,

df.loc[0, '姓名'] = pd.NA

df["列名"] = df["列名"].astype("string")

df["列名"] = df["列名"].astype("Int64")

显示: ,类似于 None

类型: Pandas 缺失值标量

这才是真正的空

pandas.NA 是 Pandas 在 1.0 版本引入的一个专用 缺失值标量(missing value indicator),用于统一表示缺失值,尤其是在 新扩展类型(ExtensionDtype) 中,例如 string, Int64, boolean 等。

它的设计目的是替代 numpy.nan 在非浮点类型中的缺失值表示问题,因为 numpy.nan 只能在浮点数组中正常工作,而 pandas.NA 可以在整数、布尔、字符串等类型中安全使用。

pandas 自家专用

类型:PandasNull(独立空值对象)

只能用于:string / Int64 / boolean

优点:不改变列类型

转 Int64 /string → 空值自动变 pd.NA

注意:pd.NA只能作用于空值判断,isna ntna, fillna这种 fill;

加减乘除等于逻辑运算都是pd.NA

pd.NA = 通用空值(字符串、整数、布尔都能用)

category

空值是numpy.nan

category类型

省空间

category 不是为了解决空值问题而生的!

它是为了重复值多、省内存用的。

category在分组,会把全部组列出

To show only the categories that actually appear in your data, set observed=Truein the Pandas groupby method.

category里面的元素类型,根据列类型得到,如果是int,那categroy 元素就是int; 如果object,里面就是str object类型 ;

说明

numpy.nan是float类型

Panads

默认读取数据规则

如果存在的值是int,且没有缺失值NaN,则为int

如果存在的值是int,且有缺失值NaN,则为float,变成1.0 ,帮你把.0加上,说明是float

如果存在的值是包括非数值类型,,则为object,但是空值依然是NaN,相当于大杂烩。空值已然搞成数字NaN. 如果用了astype(str) 会把NaN,变成字符串"nan",因为NaN不是字符串啊,所以转化成"nan",如果是sttring,就用pd.NA这个

astype(str) → 空值变成字符串 'nan'

astype('string') → 空值变成

[]和.str的不同

\].是对一列进行操作 .str是对每一行,单元格进行操作 ## merge 当on 类型不同时候,注意category 看里面元素是什么,以及合并后,是否超出了之前元素的类型,int里面出现Nan,变成float, 要改变类型, np.nan变成float 看具体能不能存储,如果不能专。

相关推荐
绛橘色的日落(。・∀・)ノ14 小时前
Numpy 第四章 逻辑函数
numpy
world-wide-wait1 天前
机器学习04——numpy
人工智能·机器学习·numpy
书到用时方恨少!1 天前
Python NumPy 使用指南:科学计算的基石
开发语言·python·numpy
人工干智能2 天前
科普:Python / Numpy / PyTorch 的数据拼接方法
pytorch·python·numpy
恋喵大鲤鱼4 天前
DYOR CAKE
numpy
FelixZhang0285 天前
从 PDF 到 AI 知识库:RAG 数据预处理的六步标准流水线 (SOP)
人工智能·python·目标检测·计算机视觉·语言模型·ocr·numpy
哈伦20195 天前
第四章 Numpy
numpy
MediaTea6 天前
NumPy 应用实例:用户行为数据分析(归一化和标准化处理)
数据挖掘·数据分析·numpy
chushiyunen8 天前
python numpy包的使用
开发语言·python·numpy