Python数据清洗基础

在Python中进行数据清洗和可视化是一个多步骤的过程,涉及到数据的读取、预处理、分析和图形表示。以下是一些关键步骤和代码示例,这些步骤可以帮助你从原始数据中提取有价值的信息,并以直观的方式展示。

数据清洗

  1. 读取数据
import pandas as pd data = pd.read_csv('data.csv')
  1. 处理缺失值
# 填充缺失值
data.fillna(method='ffill', inplace=True)
# 或者删除缺失值
data.dropna(inplace=True)
  1. 数据类型转换
# 转换日期列为日期类型 
data['date'] = pd.to_datetime(data['date'])
  1. 删除重复数据
# 删除重复行 
data.drop_duplicates(inplace=True)
  1. 数据标准化
from sklearn.preprocessing
import StandardScaler 
# 标准化数值型数据 
scaler = StandardScaler() 
data[['sales', 'profit']] = scaler.fit_transform(data[['sales', 'profit']])

数据分析

  1. 数据描述
# 获取数据的描述性统计信息 
description = data.describe()
  1. 分组汇总
# 按类别分组汇总销售额 
category_sales = data.groupby('category')['sales'].sum()
  1. 计算相关性
# 计算销售额与利润的相关性
correlation = data['sales'].corr(data['profit'])
  1. 数据透视表
# 创建数据透视表 
pivot_table = data.pivot_table(values='sales', index='category', columns='region', aggfunc='sum')

数据可视化

  1. 折线图
import matplotlib.pyplot as plt 
# 绘制销售趋势折线图 
plt.figure(figsize=(10, 6)) 
plt.plot(data['date'], data['sales'], label='Sales') 
plt.xlabel('Date') 
plt.ylabel('Sales') 
plt.title('Sales Over Time') 
plt.legend() 
plt.show()
# 带数据,可直接运行版
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})plt.figure(figsize=(10, 6))
plt.plot(data['date'], data['sales'], marker='o', linestyle='-', color='b')
plt.title('Sales Over Time')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.grid(True)
plt.show()

  1. 柱状图
# 绘制不同类别销售额的柱状图 
plt.figure(figsize=(10, 6)) 
plt.bar(data['category'], data['sales'], color='skyblue') 
plt.xlabel('Category') 
plt.ylabel('Sales') 
plt.title('Sales by Category') 
plt.show()
  1. 散点图
# 绘制利润与销售额的散点图 
plt.figure(figsize=(10, 6)) 
plt.scatter(data['profit'], data['sales'], color='red') plt.xlabel('Profit') 
plt.ylabel('Sales') 
plt.title('Profit vs Sales') 
plt.show()
  1. 直方图
# 绘制销售额分布的直方图 
plt.figure(figsize=(10, 6)) 
plt.hist(data['sales'], bins=20, color='green') 
plt.xlabel('Sales') 
plt.ylabel('Frequency') 
plt.title('Sales Distribution') 
plt.show()
# 带数据,可直接运行版
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})plt.figure(figsize=(10, 6))
plt.hist(data['sales'], bins=10, color='green', alpha=0.7)
plt.title('Sales Distribution')
plt.xlabel('Sales')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()

  1. 高级可视化(如热力图)
import seaborn as sns
# 绘制相关性热力图 
plt.figure(figsize=(10, 6)) 
sns.heatmap(data.corr(), annot=True, cmap='coolwarm') 
plt.title('Correlation Heatmap') 
plt.show()
# 带数据,可直接运行版
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np# 假设数据
dates = pd.date_range("20230101", periods=6)
sales = np.random.randint(100, 200, size=6)
data = pd.DataFrame({'date': dates, 'sales': sales})# 假设相关性数据
corr = data.corr()
plt.figure(figsize=(8, 6))
sns.heatmap(corr, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('Correlation Heatmap')
plt.show()

这些步骤和代码示例提供了一个从数据清洗到可视化的完整流程,帮助你更好地理解和分析你的数据。通过这些方法,你可以将原始数据转换为有价值的洞察,并以图形的方式进行展示。

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

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

相关文章

【Python 千题 —— 基础篇】评论倾向分析

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 在某个电商平台的评论系统中,用户可以提交商品评论。为了分析评论的情感倾向,我们需要编写一个程序来处理用户评论,并对评论内容进行简单的分析和处理。…

Mac/Linux系统matplotlib中文支持问题

背景 matplotlib是python中最常用的数据可视化分析工具,Mac和Linux系统无中文字体,不支持中文显示(希望后续可以改进),需要进行字体的下载和设置才能解决。笔者经过实践,发现Mac系统和Linux系统解决方案略…

1.【R语言】R语言的下载和安装

R语言是一种开源编程语言,它提供了丰富的统计模型和图形绘制功能,广泛用于数据科学、统计分析、数据挖掘和机器学习。R有一个活跃的社区和大量的包,可以满足各种需求,如数据清洗、绘图和报告生成。其强大的数据处理能力和灵活的可…

Ant Design vue 多层for循环form表单自定义校验

数据结构如下&#xff1a;三维数组。 注意&#xff1a;<a-form-model>一定得写在for外面&#xff01;&#xff01;&#xff01;&#xff01; <!-- 弹出框 --> <a-modal:title"title":dialog-style"{ top: 20px }":visible"visible&quo…

Datawhale X 李宏毅苹果书 AI夏令营 入门 Task2-了解线性模型

目录 线性模型分段线性曲线模型变形 线性模型 输入的特征 x 乘上一个权重&#xff0c;再加上一个偏置就得到预测的结果&#xff0c;这样的模型称为线性模型。 分段线性曲线 线性模型有很大的限制&#xff0c;这一种来自于模型的限制称为模型的偏差&#xff0c;无法模拟真实的…

Bluetooth: att protocol

一篇搞懂 ATT 支持的东西都有什么。 READ_BY_GROUP_TYPE_REQ/RSP 如下是 Spec 内容&#xff1a; The attributes returned shall be the attributes with the lowest handles within the handle range. These are known as the requested attributes.If the attributes with th…

零知识证明-基础数学(二)

零知识证明(Zero—Knowledge Proof)&#xff0c;是指一种密码学工具&#xff0c;允许互不信任的通信双方之间证明某个命题的有效性&#xff0c;同时不泄露任何额外信息 导数、偏导数 ,互质数&#xff0c;费马小定理&#xff0c;欧拉定理 1 导数 导数是微积分学中的重要概念&am…

科研绘图系列:R语言组合图形绘图

介绍 柱状图、箱线图和棒棒图组合 加载R包 # Library library(ggplot2) library(dplyr) library(forcats)读取数据 data <- data.frame(name=c("north","south","south-east","north-west","south-west","north…

jquery下载的例子如何应用到vue中

参考测试圈相亲平台开发流程&#xff08;4&#xff09;&#xff1a;选个漂亮的首页 (qq.com) 下载的文件夹解压到v_love项目的pubilc下的static文件夹内&#xff0c;这里放的都是我们的静态资源。 打开文件夹内的index.html&#xff0c;我们先确定下它是不是我们要的东西&…

基于yolov10的PCB检测算法研究

内容&#xff1a;项目将YOLOV10创新后的PCB检测算法成功部署到GD32H757上&#xff0c;实现PCB缺陷的工业产线实时检测。 项目主要支持开源代码&#xff1a;HomiKetalys/gd32ai-modelzoo: Provide deployable deep learning models on gd32 (github.com) &#xff08;想了解将…

信息打点-红队工具篇FofaQuakeKunyuSuize水泽Arl灯塔

知识点&#xff1a; 1、网络空间四大引擎-Fofa&Quake&Shodan&Zoomeye 2、自动化信息收集项目-ARL灯塔&Suize水泽&Kunyu坤舆 3、单点功能信息收集项目-企查&子域名&指纹识别&社工信息 黑暗引擎&#xff1a; https://fofa.info https://qua…

GPT-4 vs LLaMA3.1:核心技术架构与应用场景对比

目录 前言 一、GPT-4 的核心技术架构 1.1 Transformer 结构概述 1.2 GPT-4 的主要组成部分 1.3 GPT-4 的创新与改进 二、LLaMA3.1 的核心技术架构 2.1 模型概述 2.2 LLaMA3.1 的主要组成部分 2.3 LLaMA3.1 的创新与改进 三、GPT-4 和 LLaMA3.1 的主要差异 3.1 模型规…

Native开发与逆向第五篇 - hook log打印

开发demo 新建native项目&#xff0c;实现log打印字符串。 下载地址&#xff1a;https://download.csdn.net/download/u013170888/89698015 #include <android/log.h> #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, "JNI_LOG", __VA_ARGS__)exte…

WireShark网络分析~部署方式

一、《Wireshark网络分析就这么简单》 第一章学习 声明&#xff1a;文章只限于网络学习和实验&#xff0c;请遵守《网络安全法》。 第一章问题一&#xff1a;两台服务器A和B的网络配置如下(见图1)&#xff0c;B的子网掩码本应该是255.255.255.0&#xff0c;被不小心配成了255.…

深入解析C#中的锁机制:`lock(this)`、`lock(privateObj)`与`lock(staticObj)`的区别

前言 在C#的多线程编程中&#xff0c;lock关键字是确保线程安全的重要工具。它通过锁定特定的对象&#xff0c;防止多个线程同时访问同一块代码&#xff0c;从而避免数据竞争和资源冲突。然而&#xff0c;选择适当的锁对象对于实现高效的线程同步至关重要。本文将深入探讨使用…

无人机之电池篇

无人机电池作为无人机的重要组成部分&#xff0c;其性能、使用、保养及选择都至关重要。以下是对无人机电池的综合介绍&#xff1a; 一、无人机电池的基本参数 电池容量&#xff1a;电池容量直接影响无人机的续航能力。大容量电池&#xff0c;如5000mAh的电池&#xff0c;能提…

Python模块内容总结

参考&#xff1a; Python 模块 | 菜鸟教程 (runoob.com) Python 模块(Module)&#xff0c;是一个 Python 文件&#xff0c;以 .py 结尾&#xff0c;包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代码分配到一个模块里能让你的代…

「OC」初识MVC —— 简单学习UITableView的解耦

「OC」初识MVC —— 简单学习UITableView的解耦 文章目录 「OC」初识MVC —— 简单学习UITableView的解耦写在前面认识MVC解耦数据源代理 创建cell的基础类创建section的相关类分离数据源分离代理总结参考资料 写在前面 最近在学习了解MVC&#xff0c;然后开始发现&#xff0c…

搭建数据库启前后端环境

1、 安装postgre&#xff0c;修改pg_hba.conf文件 2、安装dbeaer 3、任务管理器-服务&#xff1a;查看是否启动postgresql-x64-11 4、连接测试&#xff1a;新建数据库连接 http://127.0.0.1:14269/browser/# pgAdmin等于dbeaver 5、创建数据库&#xff1a; 6、启动后端…

【读书笔记-《30天自制操作系统》-12】Day13

本篇的内容仍然是定时器的相关讲解。上一篇内容中对于中断程序做了许多优化&#xff0c;但是这些优化到底起了多少作用呢&#xff1f;本篇用一种测试方法来进行测试。然后本篇继续引入链表与哨兵的概念&#xff0c;进一步加快超时的中断处理。 1. 主程序简化 开发过程到了这…