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

python——数据分析

数据分析的三个主要方面

在数据分析中,整个流程通常可以分为三个大的方面:数据采集数据挖掘数据可视化。每个方面包含了不同的步骤,涉及到不同的Python库和工具。下面我们逐步展开讲解,并在最后总结为一份表格。


1. 数据采集

数据采集是数据分析的第一步,主要任务是从各种数据源中获取原始数据。

原理和作用场景:
  • 原理:通过API、网络爬虫、数据库连接等方式获取原始数据。
  • 作用场景:当你需要分析来自不同来源的数据(如社交媒体、传感器数据、企业内部系统等)时,首先需要采集这些数据。
Python库:
  • Requests:用于从网页获取数据,发送HTTP请求。
  • BeautifulSoup:与网络爬虫结合,解析网页HTML。
  • Selenium:自动化浏览器操作,适用于动态加载内容的网页。
  • pandas:从CSV、Excel、SQL数据库等直接读取数据。
示例:
import requests
import pandas as pd# 从API获取数据
response = requests.get('https://api.example.com/data')
data = response.json()# 将数据转为pandas DataFrame
df = pd.DataFrame(data)

2. 数据挖掘

数据挖掘是从已采集的数据中提取有用信息的过程,包含多个步骤。

2.1 数据理解
  • 原理:在开始分析之前,理解数据的结构、分布和特点。
  • 作用场景:为后续的数据处理和建模做好准备。
Python库:
  • pandas:用于探索数据集,查看数据的头尾、描述性统计等。
  • seaborn:用于绘制数据分布和相关性图。
示例:
import pandas as pd
import seaborn as snsdf = pd.read_csv('data.csv')# 查看数据的前5行
print(df.head())# 数据的描述性统计
print(df.describe())# 可视化数据分布
sns.histplot(df['column_name'])
2.2 数据准备
  • 原理:对数据进行清洗和预处理,处理缺失值、异常值、数据转换等。
  • 作用场景:确保数据的质量,为建模做好准备。
Python库:
  • pandas:处理缺失值、数据转换。
  • scikit-learn:提供数据标准化和归一化的工具。
示例:
from sklearn.preprocessing import StandardScaler# 填充缺失值
df['column_name'].fillna(df['column_name'].mean(), inplace=True)# 数据标准化
scaler = StandardScaler()
df['scaled_column'] = scaler.fit_transform(df[['column_name']])
2.3 数据清洗
  • 原理:进一步清理数据,如去除噪声、合并重复数据、格式化字符串等。
  • 作用场景:为最终的分析和模型提供高质量的数据。
Python库:
  • re:用于处理和清洗字符串数据。
  • pandas:用于数据清洗和转换。
示例:
import re# 格式化字符串数据
df['cleaned_column'] = df['column_name'].apply(lambda x: re.sub(r'\W+', '', x))
2.4 建立模型
  • 原理:选择合适的算法对数据进行建模,进行预测或分类。
  • 作用场景:利用数据做出预测、分类、聚类等。
Python库:
  • scikit-learn:提供大量的机器学习算法。
  • tensorflow/keras:用于深度学习模型的构建。
示例:
from sklearn.linear_model import LinearRegression# 简单线性回归模型
model = LinearRegression()
model.fit(df[['feature']], df['target'])# 预测
predictions = model.predict(df[['feature']])
2.5 数据存储
  • 原理:将清理后的数据保存以备后续分析或共享。
  • 作用场景:长期存储分析后的数据,或为下游系统提供数据。
Python库:
  • pandas:保存为CSV、Excel文件。
  • SQLAlchemy:存储到数据库。
示例:
# 保存数据到CSV
df.to_csv('cleaned_data.csv', index=False)
2.6 模型评估
  • 原理:评估模型的效果,选择最优模型。
  • 作用场景:确保模型在实际应用中具有良好的表现。
Python库:
  • scikit-learn:提供多种模型评估指标。
  • matplotlib/seaborn:可视化评估结果。
示例:
from sklearn.metrics import mean_squared_error# 计算均方误差
mse = mean_squared_error(df['target'], predictions)
print(f'Mean Squared Error: {mse}')

3. 数据可视化

数据可视化是将分析结果和模型输出以图表的形式展示出来。

3.1 建立各类图表
  • 原理:使用图表展示数据的模式、趋势和异常值。
  • 作用场景:直观地呈现数据分析结果。
Python库:
  • matplotlib:基础的绘图库。
  • seaborn:在matplotlib的基础上提供更高级的可视化功能。
  • plotly:用于交互式图表。
示例:
import matplotlib.pyplot as plt# 绘制折线图
plt.plot(df['date'], df['value'])
plt.show()
3.2 按不同的维度展示图表
  • 原理:从不同角度分析数据,展示不同维度下的结果。
  • 作用场景:深入分析数据的多维特性。
Python库:
  • pandas:支持多维度数据透视。
  • plotly:交互式的多维度图表展示。
示例:
import seaborn as sns# 通过不同类别展示数据分布
sns.boxplot(x='category', y='value', data=df)
plt.show()

总结表格

大方面步骤原理作用场景Python库示例
数据采集数据获取通过API、网络爬虫、数据库获取原始数据当需要分析不同来源的数据时,首先需要采集这些数据requests, BeautifulSoup, Selenium, pandas使用requests从API获取数据并转换为pandasDataFrame
数据挖掘数据理解理解数据的结构、分布和特点为后续的数据处理和建模做好准备pandas, seaborn使用pandas查看数据的头尾,使用seaborn绘制数据分布图
数据挖掘数据准备清洗和预处理数据,处理缺失值、异常值确保数据的质量,为建模做好准备pandas, scikit-learn使用pandas填充缺失值,使用scikit-learn进行数据标准化
数据挖掘数据清洗去除噪声、合并重复数据、格式化字符串等为最终的分析和模型提供高质量的数据re, pandas使用re格式化字符串数据
数据挖掘建立模型选择合适的算法对数据进行建模利用数据做出预测、分类、聚类等scikit-learn, tensorflow/keras使用scikit-learn建立简单线性回归模型
数据挖掘数据存储将清理后的数据保存长期存储分析后的数据,或为下游系统提供数据pandas, SQLAlchemy使用pandas将数据保存到CSV
数据挖掘模型评估评估模型的效果,选择最优模型确保模型在实际应用中具有良好的表现scikit-learn, matplotlib, seaborn使用scikit-learn计算模型的

均方误差 |
| 数据可视化 | 建立图表 | 使用图表展示数据的模式、趋势和异常值 | 直观地呈现数据分析结果 | matplotlib, seaborn, plotly | 使用matplotlib绘制折线图 |
| 数据可视化 | 多维度展示 | 从不同角度分析数据 | 深入分析数据的多维特性 | pandas, plotly | 使用seaborn按类别展示数据分布 |

通过这张表格,你可以更好地理解数据分析的各个步骤,并选择合适的Python库来实现每一步。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 短视频SDK解决方案,Flutter赋能,跨平台无缝体验
  • Docker私人学习笔记
  • python——concurrent.futures
  • SAP凭证分割【Document Splitting】
  • wsl2 airsim wairing for connect (Windows11 UE4.27)问题解决
  • 惠海H4312 dcdc同步整流降压恒压IC 30V 40V转3.3V/5V/12V小体积大电流单片机供电
  • Zimg:轻量级图片服务器的高性能解决方案
  • C# Stack
  • Spring的核心启动流程
  • yas源码解析 之 hexdump打印二进制
  • PostgreSQL的pg_dump中 --inserts参数测试
  • 随机优化中基于任务的端到端模型学习
  • 为什么使用网络请求时,遇到 HTTP 请求返回 404(Not Found)错误,而使用 HTTPS 请求则正常工作
  • 蛇优化算法(Snake Optimization, SO)优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)
  • 建筑楼宇电气安全与能效管理
  • C++类中的特殊成员函数
  • CSS中外联样式表代表的含义
  • es6
  • Git同步原始仓库到Fork仓库中
  • java中的hashCode
  • Js基础知识(四) - js运行原理与机制
  • js算法-归并排序(merge_sort)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux快速复制或删除大量小文件
  • MySQL的数据类型
  • node学习系列之简单文件上传
  • Redis学习笔记 - pipline(流水线、管道)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vuex 笔记整理
  • 关于Java中分层中遇到的一些问题
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 三分钟教你同步 Visual Studio Code 设置
  • 手写双向链表LinkedList的几个常用功能
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #、%和$符号在OGNL表达式中经常出现
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (7) cmake 编译C++程序(二)
  • (C语言)共用体union的用法举例
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .env.development、.env.production、.env.staging
  • .net core 的缓存方案
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net8 Blazor 尝鲜
  • .net访问oracle数据库性能问题
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .net与java建立WebService再互相调用
  • /*在DataTable中更新、删除数据*/
  • @DependsOn:解析 Spring 中的依赖关系之艺术