点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。

数据清洗 × 特征可视化 × Kaggle数据集实操
读者收获:1周内具备数据预处理能力

数据科学家80%的时间都在处理数据,而掌握这四件套你将比90%的同行更高效。本文用可复现的Kaggle实战,带你7天打通数据处理任督二脉。

一、四件套定位与协同作战

1.1 工具定位分析

在这里插入图片描述

分工明细:
在这里插入图片描述

1.2 环境极速配置

# 创建虚拟环境  
conda create -n data_science python=3.9  
conda activate data_science  # 一键安装四件套  
pip install numpy pandas matplotlib seaborn  # 验证安装  
import numpy as np  
print(f"NumPy {np.__version__}")  

二、NumPy:数据处理的原子操作

2.1 核心数据结构:ndarray

创建数组的5种方式:

import numpy as np  # 从列表创建  
arr1 = np.array([1, 2, 3])  # 特殊数组  
zeros = np.zeros((3, 4))          # 3行4列零矩阵  
ones = np.ones((2, 3))            # 2行3列单位矩阵  
arange = np.arange(0, 10, 0.5)    # 0-10步长0.5  
random = np.random.randn(100)     # 100个正态分布数  

2.2 数组操作:向量化计算

传统循环 vs 向量化:

# 低效循环(避免!)  
result = []  
for i in range(1000000):  result.append(i * 2)  # 高效向量化  
arr = np.arange(1000000)  
result = arr * 2  # 速度提升200倍  

广播机制实战:

A = np.array([[1, 2], [3, 4]])  
B = np.array([10, 20])  # 自动广播计算  
C = A + B  # [[11,22], [13,24]]  

三、Pandas:数据清洗的瑞士军刀

3.1 核心数据结构解析

在这里插入图片描述

3.2 数据清洗六步法

以泰坦尼克数据集为例:

import pandas as pd  # 1. 数据加载  
titanic = pd.read_csv("titanic.csv")  # 2. 数据概览  
print(titanic.info())  
print(titanic.describe())  # 3. 处理缺失值  
titanic['Age'] = titanic['Age'].fillna(titanic['Age'].median())  
titanic['Embarked'] = titanic['Embarked'].fillna('S')  # 4. 删除无效列  
titanic.drop(columns=['Cabin', 'PassengerId'], inplace=True)  # 5. 特征工程  
titanic['FamilySize'] = titanic['SibSp'] + titanic['Parch']  
titanic['IsAlone'] = (titanic['FamilySize'] == 0).astype(int)  # 6. 类型转换  
titanic['Pclass'] = titanic['Pclass'].astype('category')  

3.3 高级数据处理技巧

数据分组聚合:

# 按舱位统计生存率  
survival_by_class = titanic.groupby('Pclass')['Survived'].mean() * 100  # 多维度分析  
class_sex_grouping = titanic.groupby(['Pclass','Sex']).agg(  avg_age=('Age', 'mean'),  survival_rate=('Survived', 'mean')  
)  

数据合并:

# 创建模拟票价表  
fare_df = pd.DataFrame({  'Pclass': [1, 2, 3],  'BaseFare': [100, 50, 25]  
})  # 合并到主表  
titanic = titanic.merge(fare_df, on='Pclass', how='left')  

四、Matplotlib:可视化基础构建

4.1 绘图三步法

import matplotlib.pyplot as plt  # 1. 创建画布  
fig, ax = plt.subplots(figsize=(10, 6))  # 2. 绘制图形  
ax.plot(survival_by_class.index, survival_by_class.values,  marker='o', linestyle='--', color='b', label='生存率')  # 3. 美化设置  
ax.set_title('泰坦尼克号舱位生存率', fontsize=14)  
ax.set_xlabel('舱位等级', fontsize=12)  
ax.set_ylabel('生存率(%)', fontsize=12)  
ax.grid(True, linestyle='--', alpha=0.7)  
ax.legend()  # 保存输出  
plt.savefig('survival_rate.png', dpi=300, bbox_inches='tight')  

4.2 常用图表类型速查

在这里插入图片描述

五、Seaborn:统计可视化进阶

5.1 关系分析三剑客

import seaborn as sns  # 1. 分布关系图  
sns.jointplot(data=titanic, x='Age', y='Fare', kind='scatter')  # 2. 多变量关系  
sns.pairplot(titanic[['Age','Fare','Pclass','Survived']], hue='Survived')  # 3. 热度图  
corr = titanic.corr()  
sns.heatmap(corr, annot=True, cmap='coolwarm')  

5.2 分类数据可视化

# 1. 箱线图  
sns.boxplot(x='Pclass', y='Age', hue='Survived', data=titanic)  # 2. 小提琴图  
sns.violinplot(x='Sex', y='Age', hue='Survived',  split=True, data=titanic)  # 3. 计数图  
sns.countplot(x='Pclass', hue='Survived', data=titanic)  

特征关联分析矩阵:

g = sns.PairGrid(titanic[['Age','Fare','Pclass','Survived']])  
g.map_diag(sns.histplot)  
g.map_offdiag(sns.scatterplot)  
g.add_legend()  

六、Kaggle实战:房价预测全流程

6.1 数据集加载与探索

# 加载Kaggle房价数据集  
house = pd.read_csv('house_prices.csv')  # 快速探索  
print(house.shape)  
print(house.info())  # 目标变量分布  
sns.histplot(house['SalePrice'], kde=True)  
plt.title('房价分布')  
plt.show()  

6.2 数据清洗与特征工程

# 1. 处理缺失值  
missing = house.isnull().sum().sort_values(ascending=False)  
missing = missing[missing > 0]  
house.drop(columns=missing.index[:5], inplace=True)  # 删除高缺失列  # 2. 数值型特征填充  
num_cols = house.select_dtypes(include=['int64','float64']).columns  
house[num_cols] = house[num_cols].fillna(house[num_cols].median())  # 3. 类别型特征转换  
cat_cols = house.select_dtypes(include='object').columns  
house[cat_cols] = house[cat_cols].fillna('Unknown')  
house = pd.get_dummies(house, columns=cat_cols)  # 4. 特征工程  
house['TotalSF'] = house['TotalBsmtSF'] + house['1stFlrSF'] + house['2ndFlrSF']  
house['Age'] = house['YrSold'] - house['YearBuilt']  

6.3 特征可视化分析

# 1. 房价与关键特征关系  
fig, axes = plt.subplots(1, 3, figsize=(18, 6))  
sns.scatterplot(x='TotalSF', y='SalePrice', data=house, ax=axes[0])  
sns.boxplot(x='OverallQual', y='SalePrice', data=house, ax=axes[1])  
sns.scatterplot(x='GrLivArea', y='SalePrice', data=house, ax=axes[2])  # 2. 特征相关性  
corr_matrix = house.corr()  
plt.figure(figsize=(14, 12))  
sns.heatmap(corr_matrix[['SalePrice']].sort_values(by='SalePrice', ascending=False),  annot=True, cmap='viridis')  

七、7天速通学习计划

每日学习路线

gantt  title 7天速通计划  dateFormat  YYYY-MM-DD  section Day1-2 NumPy基础  数组创建与操作     :active,  des1, 2023-08-01, 2d  section Day3-4 Pandas核心  数据清洗实战      :crit, des2, 2023-08-03, 2d  section Day5  Matplotlib  图表绘制技巧      :des3, 2023-08-05, 1d  

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

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

相关文章

计算机系统层次结构

计算机系统通过多层抽象,平衡硬件效率与软件灵活性,各层以独立语言和功能构成有机整体。一、层次划分(从底层到顶层)层级名称特点实现方式第1级微程序机器层硬件直接执行微指令(如微操作控制信号)。物理硬件…

04 基于sklearn的机械学习-梯度下降(上)

梯度下降一 、为什么要用到梯度下降?正规方程的缺陷:非凸函数问题:损失函数非凸时,导数为0会得到多个极值点(非唯一解)计算效率低:逆矩阵运算时间复杂度 O(n3),特征量翻倍时计算时间…

淘宝 API HTTP/2 多路复用与连接优化实践:提升商品数据采集吞吐量

一、引言​随着电商行业的蓬勃发展,对淘宝平台商品数据的采集需求日益增长。无论是市场调研公司分析市场趋势、电商平台整合商品资源,还是商家进行竞品分析,都需要高效、稳定地获取大量淘宝商品数据。然而,传统的 HTTP 协议在面对…

javascript中call、apply 和 bind 的区别详解

文章目录深入浅出:JavaScript 中的 call、apply 和 bind一、三位魔法师的共同使命二、各显神通的魔法师们1. call - 即时通讯专家2. apply - 批量处理高手3. bind - 预约服务大师三、魔法师们的对比表格四、魔法师们的实际应用1. 借用方法2. 函数柯里化3. 事件处理五…

【PHP】接入百度AI开放平台人脸识别API,实现人脸对比

目录 一、需求 二、准备工作 1、申请服务 2、创建应用,获取开发密钥 3、官方开发文档 4、测试人像图片 三、PHP接入 1、鉴权,获取access_token 2、人脸对比 四、完整代码 一、需求 现在人脸识别、人脸对比技术越来越成熟,使用越来越…

【东枫科技】DreamHAT+

DreamHAT 是一款顶部附加硬件 (HAT) 套件,可为 Raspberry Pi 提供 60GHz 毫米波雷达供您使用。 全尺寸 HAT 包含一个英飞凌 BGT60TR13C 芯片,具有单个发射天线和三个接收器(TX/RX),通过 GPIO 引脚和 SPI 连接到 Raspbe…

Spring Boot + MongoDB:从零开始手动配置 MongoConfig 实战

前言 你以为只要写上 spring.data.mongodb.*,就能一劳永逸,MongoDB 立马听话?别天真,这只是入门级操作,像是拿个自动挡钥匙,开个小车溜达溜达,远远算不上高手操作。当项目需求变得复杂,连接字符串需要灵活配置,或者多数据源并行作战时,自动配置的魔法显得捉襟见肘。…

建筑节能目标下,楼宇自控系统以高效运行助力节能减碳

随着全球气候变化问题日益严峻,节能减排已成为各国政府和企业的重要任务。在建筑领域,楼宇自控系统(Building Automation System, BAS)作为实现建筑节能目标的关键技术,正发挥着越来越重要的作用。根据中国政府发布的《…

LOVON——面向足式Open-Vocabulary的VLN导航:LLM做任务分解、YOLO11做目标检测,最后L2MM将指令和视觉映射为动作,且解决动态模糊

前言 因为项目需要(比如我们在做的两个展厅讲解订单),近期我一直在研究VLN相关,有些工作哪怕暂时还没开源(将来可能会开源),但也依然会解读,比如好处之一是构建完整的VLN知识体系,本文便是其中一例 我在解读过程中&am…

在线免费的AI文本转语音工具TTSMaker介绍

TTSMaker是一个在线的文本转语音工具, 支持多语言和中文方言,不同的语言和方言单次转换的字符上限从200-10000 不同,转换的效果还不错,听不出明显的AI痕迹。 工具的网址是:https://ttsmaker.cn/。 工具的界面如上&…

【AI问答】PromQL中interval和rate_interval的区别以及Grafana面板的配置建议

问题1:interval和rate_interval的区别 在PromQL中确实有 $__rate_interval 这个特殊的变量,它与 $__interval 有不同的用途和计算方式。 $__interval vs $__rate_interval 1. $__interval 含义:Grafana计算出的基本时间间隔计算方式&#xff…

STM32学习记录--Day5

今天了解了:中断中断有多个类别包括:USART中断,I2C中断等;并通过NVIC来分配中断的优先级EXTIEXTI的内部结构:EXTI线🔧 ​​一、EXTI系统核心架构​​1. ​​中断源输入(左上区域)​​…

CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)

文章目录前言一、NTP (Network Time Protocol) & ntpd1.原理2. 安装与配置(ntp 包)3.NTPd 优缺点对比二、Chrony1.原理2.安装与配置 (chrony 包)3. 优点4. 缺点三、systemd-timesyncd1.原理2.安装与配置 (systemd 自带)3. 优点4. 缺点四、手动同步工具1.ntpdate(已废弃&…

Web3:在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境

相关文章推荐链接Web3专栏https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速构建 Solidity 智能合约本地开发环境引言1. 开发环境准备(Windows)1.1 安装 VSCode1.2 安装推荐插件1.3 安装 Foundry1.4 验证 Forge 和…

Implement recovery based on PITR using dump file and binlog

模拟生产场景中需要基于某个事务点的恢复,使用存量备份与存量binlog 生成测试数据 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

HTML-取消div,a等标签点击效果

一、背景当标签被设置onclick事件之后,在有些手机浏览器中,点击这些标签,会有点击变色效果。想要取消点击变色效果。通过为div和标签元素添加-webkit-tap-highlight-color样式属性,可以有效地解决这一问题二、解决方案已a标签示例…

VR 三维重建:开启沉浸式体验新时代

在科技飞速发展的今天,VR(虚拟现实)技术已经逐渐渗透到我们生活的各个领域,为我们带来了前所未有的沉浸式体验。而 VR 三维重建作为 VR 技术的重要应用之一,更是让人们能够身临其境地感受各种场景,无论是旅…

iTwinjs 几何 - Curve

CurvePrimitive 常用的见下 LineSegment3d直线段两点直线边、杆件、骨架LineString3d折线多点连续直线轮廓线、路径Arc3d圆弧 / 椭圆弧圆心 半径 起止角圆孔、圆角、弧段BezierCurve3d贝塞尔曲线端点 控制点平滑过渡、动画轨迹BSplineCurve3dB 样条 / NURBS控制点 节点矢…

iPhone 恢复出厂设置是否会删除所有内容?

当你的 iPhone 经常崩溃、出现黑屏死机、卡在加载屏幕上等问题时,你可能会考虑进行恢复出厂设置来修复它。或者在其他情况下,如果你要将使用多年的设备交给新主人,出于安全考虑,也需要进行恢复出厂设置。那么,恢复出厂…

机器学习②【字典特征提取、文本特征处理(TF-IDF)、数据标准化与归一化、特征降维】

文章目录先言一、特征工程概述二、特征提取1.字典特征提取(特征离散化)2.文本特征提取2.1英文文本提取2.2中文文本提取(jieba分词器)3.TfidfVectorizer TF-IDF文本特征词的重要程度特征提取三、数据归一化与标准化1.MinMaxScaler …