当前位置: 首页 > news >正文

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()

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vmware扩容空间不见的问题
  • C++set与map容器
  • Vue3中 defineProps 与 defineEmits 基本使用
  • django orm的Q和~Q的数据相加并不一定等于总数
  • 影视会员充值API接口如何开发?
  • 生物信息学:DNA序列的构成
  • 大模型battle,哪家才是真的“价美”也“物美”
  • windows 11/ubuntu Teredo 设置 (ipv4 转 ipv6)
  • Python2.x 与 3.x 版本区别
  • SQLi-LABS通关攻略【51-55关】
  • Jmeter下载、配置环境变量
  • 从插件plugin和钩子hook 到“智能化自动化”架构
  • Spring——控制反转(IOC)与依赖注入(DI)
  • python3 logging入门
  • 前端换行、空格的多种表现形式
  • JS 中的深拷贝与浅拷贝
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Apache Spark Streaming 使用实例
  • avalon2.2的VM生成过程
  • IOS评论框不贴底(ios12新bug)
  • java2019面试题北京
  • JS基础之数据类型、对象、原型、原型链、继承
  • Nodejs和JavaWeb协助开发
  • Promise初体验
  • spark本地环境的搭建到运行第一个spark程序
  • tab.js分享及浏览器兼容性问题汇总
  • uva 10370 Above Average
  • vue 个人积累(使用工具,组件)
  • 警报:线上事故之CountDownLatch的威力
  • 开源SQL-on-Hadoop系统一览
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端之React实战:创建跨平台的项目架构
  • 数据仓库的几种建模方法
  • ​ubuntu下安装kvm虚拟机
  • ​马来语翻译中文去哪比较好?
  • ![CDATA[ ]] 是什么东东
  • #### go map 底层结构 ####
  • (007)XHTML文档之标题——h1~h6
  • (2)Java 简介
  • (4)Elastix图像配准:3D图像
  • (7)摄像机和云台
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (顺序)容器的好伴侣 --- 容器适配器
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET构架之我见
  • ??在JSP中,java和JavaScript如何交互?
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)
  • [AHK] WinHttpRequest.5.1报错 0x80092004 找不到对象或属性
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作