数据集中通常会包含null值或空值,对于空值的处理有2种方式:
- 删除带有null的行或列
- 用非空值填充null项
检查null值
要处理数据集中的null值,首先要找出DataFrame中的哪些单元格是空的:
movies_df.isnull()
输出
rank genre description director actors year runtime rating votes revenue_millions metascore Title Guardians of the Galaxy False False False False False False False False False False False Prometheus False False False False False False False False False False False Split False False False False False False False False False False False Sing False False False False False False False False False False False Suicide Squad False False False False False False False False False False False The Great Wall False False False False False False False False False False False La La Land False False False False False False False False False False False ... ... ... ... ... ... ... ... ... ... ... ... Taare Zameen Par False False False False False False False False False False False Take Me Home Tonight False False False False False False False False False False True Resident Evil: Afterlife False False False False False False False False False False False Project X False False False False False False False False False False False Secret in Their Eyes False False False False False False False False False True False Hostel: Part II False False False False False False False False False False False Step Up 2: The Streets False False False False False False False False False False False Search Party False False False False False False False False False True False Nine Lives False False False False False False False False False False False [1000 rows x 11 columns]
isnull()
方法返回一个DataFrame,其中每个单元格都是True或False,表示该单元格是不是null状态。
为了统计每一列的空值,可以使用聚合函数sum()
进行求和:
movies_df.isnull().sum()
输出
rank 0 genre 0 description 0 director 0 actors 0 year 0 runtime 0 rating 0 votes 0 revenue_millions 128 metascore 64 dtype: int64
.isnull()
本身并不是很有用,通常与sum()
等其他方法一起使用。
现在可以看到,数据中revenueue_millions列有128个缺失值,metascore列有64个缺失值。
删除null值
当数据集中有少量缺失值时,建议删除null数据。
删除null值非常简单:
movies_df.dropna()
这个操作将删除任何至少有一个空值的行,但是它将返回一个新的DataFrame,而不更改原来的数据,更改原数据可以在这个方法中指定inplace=True
。
对于我们的数据集,这个操作将删除128行,其中revenue_millions为空,以及64行,其中metascore为空。
除了删除行,还可以通过设置axis=1
删除空值列:
movies_df.dropna(axis=1)
在我们的数据集中,这个操作将删除revenue_millions和metascore列。
axis=1
指轴1,即列,轴0是行,这是NumPy中的概念。
NumPy数组轴
NumPy多维数组由轴表示,其中axis-0表示列,axis-1表示行。
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具