4.11 数据预处理-1

本文介绍了Pandas中处理缺失值的方法,包括使用dropna删除含有缺失值的行或列,fillna填充缺失值,以及使用前向填充、后向填充和线性插值等方法。此外,还展示了如何检测和创建缺失值。
#引入相关模块
import numpy as np   # pandas和numpy常常结合在一起使用,导入numpy库
import pandas as pd  # 导入pandas库

print(pd.__version__) # 打印pandas版本信息
1.4.1

4.11.1 缺失值处理

关于缺失值

  • 在能够使用大型数据集训练学习算法之前,通常需要先清理数据, 需要通过某个方法检测并更正数据中的错误。
  • 任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,缺少值等。

Pandas 会为缺少的值分配 NaN 值。

缺失值检测

  • dropna 根据标签的值中是否存在缺失数据对轴标签进行过滤(删除),可通过阈值调节对缺失值的容忍度
  • fillna 用指定值或插值方法(如ffill或bfill)填充缺失数据
  • isnull 返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA
  • notnull Isnull的否定式

dropna函数定义:

DataFrame.dropna( axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

axis参数确定是否删除包含缺失值的行或列:

  • axis=0或axis='index’删除含有缺失值的行,
  • axis=1或axis='columns’删除含有缺失值的列,

how参数当我们至少有一个NA时,确定是否从DataFrame中删除行或列,how='all’或者how=‘any’:

  • how='all’时表示删除全是缺失值的行(列)
  • how='any’时表示删除只要含有缺失值的行(列)
  • thresh=n 表示保留至少含有n个非na数值的行
  • subset定义要在哪些列中查找缺失值

In [2]:

df = pd.DataFrame([[ '张三',np.nan,3000, 'M'],
                   [ '李四',28,np.nan,np.NaN] , 
                   [ '王五 ',25, np.NaN,'W'],
                   [ '赵六',20,4000,'M'],
                   [ np.NaN,np.NaN,np.NaN,np.NaN]
                  ],columns=[ '姓名', '年龄', '工资', '性别'])
df

Out[2]:

姓名 年龄 工资 性别
0 张三 NaN 3000.0 M
1 李四 28.0 NaN NaN
2 王五 25.0 NaN W
3 赵六 20.0 4000.0 M
4 NaN NaN NaN NaN
  • .isnull() 方法返回一个大小和 df 一样的布尔型 DataFrame,并用 True 表示具有 NaN 值的元素,用 False 表示非 NaN 值的元素。

In [3]:

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   姓名      4 non-null      object 
 1   年龄      3 non-null      float64
 2   工资      2 non-null      float64
 3   性别      3 non-null      object 
dtypes: float64(2), object(2)
memory usage: 288.0+ bytes

In [4]:

df.isnull()#返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA

Out[4]:

姓名 年龄 工资 性别
【电动车】基于多目标优化遗传算法NSGAII的峰谷分时电价引导下的电动汽车充电负荷优化研究(Matlab代码实现)内容概要:本文围绕“基于多目标优化遗传算法NSGA-II的峰谷分时电价引导下的电动汽车充电负荷优化研究”展开,利用Matlab代码实现优化模型,旨在通过峰谷分时电价机制引导电动汽车有序充电,降低电网负荷波动,提升能源利用效率。研究融合了多目标优化思想与遗传算法NSGA-II,兼顾电网负荷均衡性、用户充电成本和充电满意度等多个目标,构建了科学合理的数学模型,并通过仿真验证了方法的有效性与实用性。文中还提供了完整的Matlab代码实现路径,便于复现与进一步研究。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事智能电网、电动汽车调度相关工作的工程技术人员。; 使用场景及目标:①应用于智能电网中电动汽车充电负荷的优化调度;②服务于峰谷电价政策下的需求侧管理研究;③为多目标优化算法在能源系统中的实际应用提供案例参考; 阅读建议:建议读者结合Matlab代码逐步理解模型构建与算法实现过程,重点关注NSGA-II算法在多目标优化中的适应度函数设计、约束处理及Pareto前沿生成机制,同时可尝试调整参数或引入其他智能算法进行对比分析,以深化对优化策略的理解。
一、基础信息 数据集名称:可回收材料目标检测数据集 图片数量: - 训练集:7,701张图片 - 验证集:733张图片 - 测试集:367张图片 - 总计:8,801张图片 分类类别: - carton(纸板):常见可回收包装材料 - metal(金属):如铝罐和铁制品等可回收金属 - papel(纸):纸张类可回收材料 - plastico(塑料):塑料瓶和容器等可回收塑料 - vidrio(玻璃):玻璃瓶和罐等可回收玻璃 标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务 数据格式:JPEG图片,来源于实际场景 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建自动识别和分类可回收材料的AI模型,用于智能垃圾桶或回收站,提升垃圾处理效率。 环保与可持续发展应用: 集成至环保设备或移动应用,提供实时材料识别功能,促进垃圾分类和资源回收,支持绿色倡议。 学术与工业研究: 支持计算机视觉在环境科学和废物管理领域的研究,推动AI技术在环保中的创新应用。 教育与培训: 可用于学校或社区项目,作为垃圾分类教育的视觉辅助工具,提高公众环保意识。 三、数据集优势 精准标注与多样性: 标注采用YOLO格式,确保边界框定位准确,类别覆盖五种常见可回收材料,具有高度实用性。 数据规模合理: 拥有超过8,000张图片,训练集、验证集和测试集分布均衡,支持有效的模型训练和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO系列),可直接用于目标检测模型开发,加速应用部署。 环保价值突出: 专注于可回收材料识别,有助于减少垃圾污染、促进循环经济,具有显著的社会和环境效益。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenos121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值