数据预处理-DataFrame切片

news/2024/10/18 15:18:35/文章来源:https://www.cnblogs.com/AfroNicky/p/18474303
此Blog仅作为日常学习工作中记录使用,Blog中有不足之处欢迎指出

以kaggle中房屋预测的训练集为例,说明DataFrame切片常用操作

一、读入数据

import numpy as np
import pandas as pdfile_path = '***\kaggle_house_pred_train.csv'
data = pd.read_csv(file_path)data.columns # 列名

输出:

Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street','Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig','LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType','HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd','RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType','MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual','BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1','BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating','HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF','LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath','HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual','TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType','GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual','GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF','EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC','Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType','SaleCondition', 'SalePrice'],dtype='object')
data.index #当前行标签为0~1460(最后一位为1459,有1460个元素),跨度为1的列表

输出:

RangeIndex(start=0, stop=1460, step=1)

二、DataFrame切片常用方法

DataFrame常用的切片方法有以下:

假设:df 为DataFrame类型

①通过行列名、行列索引 df[label]df[index]df[start_index:end_index]

②通过loc函数进行行列切片,df.loc[start_index:end_index,start_col:end_col]

③通过iloc函数进行行列切片,df.iloc[start_index:end_index,start_col:end_col]

写在前面,我当时学习的时候,会很困惑loc函数和iloc函数有什么区别?现提前说明,在后续的例子中去体会。

loc是location的意思,iloc中的i是integer的意思。显而易见,loc函数接收行列索引(名称)的,iloc函数接收的是第几行(下标);此外,loc函数是闭区间切片,iloc函数是左闭右开方式切片。

第①中方法能够实现的,loc函数和iloc函数也可以实现,因此作中介绍loc函数和iloc函数,进队第①种方式简要介绍。

三、示例

  1. DateFrame切片

    对于第①种方式,当是df[index]时,是针对列进行取值,index可以是单个列索引、多个列索引

    data['SalePrice']
    data[['Id','SalePrice']] #index = ['Id','SalePrice']
    

    输出:

    当是df[start_index:end_index]时,是针对进行取值,且是左闭右开

    DataFrame不存在以下几种类型的切片:df[start_index:end_index,start_col:end_col]、针对列的df['start_col':'end_col']、针对行的df[[index1,index2,...]]

    注:在实际应用中,数据量通常会比较大,因此,通常会存在行索引和行下标一致的情况,即0~len(data)。

  2. loc函数

    loc函数,根据行列索引进行切片,形式为:df[indexs,columns],其中indexs,columns形式为

    单个行列索引、行列索引列表、行列布尔索引。其中,columns可以省略,但是indexs不可省略

    data.loc[:,['Id','Alley']] # 切片获取Id和Alley列
    data.loc[:,'Id':'Alley'] # 切片获取Id到Alley列
    data.loc[1:5,['Id','Alley']] # 切片获取1到5行,Id到Alley列
    data.loc[1:5,'Id':'Alley'] # 切片获取1到5行,Id到Alley列
    data.loc[1:5,:] # 切片获取1到5行,所有列
    data.loc[[0,2,3],['Id','Alley']] # 切片获取0,2,3行,Id到Alley列
    data.loc[0,'Id':'Alley'] # 切片获取0行,Id到Alley列
    data.loc[[0,2,3]] # 切片获取0,2,3行,所有列
    data.loc[0,'MSZoning'] # 切片获取0行MSZoning列的值data.loc[data['Alley'].isna(),:] # 切片获取Alley列的缺失行
    data.loc[:,data.dtypes != 'object'] # 切片获取非object类型的列,常用于数据处理时,将数值类型数据切出来进行归一化
    
  3. iloc函数

    iloc函数,根据下标值进行切片,形式为:df[indexs,col_indexs],其中indexs,col_indexs形式为单个行列下标,行列下标列表,行列布尔索引

    data.iloc[0,2] # 切片获取0行2列的值
    data.iloc[0,2:5] # 切片获取0行2到4列的值
    data.iloc[0:4,2:5] # 切片获取0到4行2到4列的值
    data.iloc[0:4,[2,3]] # 切片获取0到4行2和3列的值
    data.iloc[[0,3,6],[2,3]] # 切片获取0,3,6行2和3列的值
    data.iloc[[2,3]] # 切片获取2,3行所有列的值
    data.iloc[:,[2,3]] # 切片获取所有行2,3列的值# 布尔索引形式与loc函数类似
    

附件:数据集地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/816897.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松上手-Navigation路由 H5

作者:狼哥 团队:坚果派 团队介绍:坚果派由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉。团队成员聚集在北京,上海,南京,深圳,广州,宁…

Audio

音频文件导入 常用格式wav mp3 aiff音频文件属性设置Force To Mono:多声道转单声道; Normalize:强制为单声道时,混合过程中被标准化 Load In Background:在后台加载时,不阻塞主线程 Ambisonic:立体混响声,非常适合360度视频和XR应用程序,如果音频文件包含立体混响声编…

RenderTexture

基础概念 RenderTexture 在Unity中,RenderTexture是一种纹理,它可以在运行时动态地生成图像数据,并且可以作为着色器的输入或者显示在游戏世界的任何材质上。简单来说,RenderTexture让你能够将场景或特定相机的渲染结果捕获到一个纹理中,然后这个纹理可以被用作其他渲染过…

九点共圆及其圆心证明(证明过程已更新)

九点共圆及其圆心证明主要思路:固定 \(P,L\),证明其它七个点均在以 \(PL\) 为直径的圆上。 条件的来源会备注在括号内。背景可能影响观感,建议打开极简模式阅读。这是一个三角形 \(\triangle ABC\),设 \(BC,AC,AB\) 边上垂足分别为 \(D,E,F\),其边上中点分别为 \(L,M,N\),…

【喜讯】全球电商大数据平台推出F类免费API接口服务!

好消息,全球电商大数据平台再次上线多个类别接口,首次推出F类免费API接口服务,为所有追求数据赋能、寻求创新突破的企业和个人,带来了前所未有的机遇。好消息,值此之际;全球电商大数据平台再次上线多个类别接口,首次推出F类免费API接口服务,为所有追求数据赋能、寻求创…

c# winform在线升级clickonce

说明:在线升级前提 1,一个可以访问在线的地址,2,发布前要在项目属性发布里配置好相关设置 一,可以在IIS上布署一个可以访问的地址 二,发布前配置

SQLSEVER 实现货币数字转中文汉字

SQLSEVER 实现数字转换成中文(货币) -- ============================================= -- Author: LearnerPing -- Create date: 2024/10/18 -- Description: Change Number to Chinese -- ============================================= Create FUNCTION GetNumberToChi…

javascript渲染OFD的库

目前使用javascript开发的OFD的渲染库主要有两个: ofd.js和liteofd,其中ofd.js开发比较早,liteofd是最近刚出现的js库。首先结论是ofd.js渲染效果没有liteofd好,因为ofd.js目前有一些效果没有支持,比如对字体没有比较好的解析和支持。 liteofd相对ofd.js效果更好,并且提供…

高等数学 6.1 定积分的元素法

在定积分的应用中,经常采用所谓的元素法。为了说明这种方法,先回顾一下曲边梯形的面积问题。 设 \(f(x)\) 在区间 \([a, b]\) 上连续且 \(f(x) \geqslant 0\) ,求以曲线 \(y = f(x)\) 为曲边、底为 \([a, b]\) 的曲边梯形的面积 \(A\) 。把这个面积 \(A\) 表示为定积分 \[A …

详解 JuiceFS 在多云架构下的数据同步与一致性

随着大模型流行,GPU 算力资源正变得日益稀缺,传统的“算力跟着存储跑”的策略需要转变为“存储跟着算力跑”。为了确保数据一致性和管理的便捷性,企业通常在特定地区的公有云上选择对象存储作为所有模型数据的集中存储点。当进行计算任务调度时,往往需要人工介入,手动进行…

Renderer

Renderer 模块 Renderer 模块的设置决定了粒子的图像或网格如何被其他粒子变换、着色和过度绘制。 粒子系统Unity中创建粒子系统渲染器模块视图 细节 使用渲染模式在多种 2D Billboard 图形模式和网格模式之间进行选择。当粒子代表固体游戏对象(例如岩石)时,3D 网格赋予粒子…

WDT

参考:https://zhuanlan.zhihu.com/p/711237133 模式 1.WDGIF_FAST_MODE:mode1 2.WDGIF_OFF_MODE:mode2 3.WDGIF_SLOW_MODE:mode0 默认初始化为WDGIF_SLOW_MODE,等待初始化完成后切换成WDGIF_FAST_MODEWDGIF_FAST_MODE设置:问题:反复重启WDGIF_SLOW_MODE模式下,初始化过程…