【1】数据分析基础(一些概念)

数据分析的五步:

(1)提出问题;(2)收集数据;(3)数据处理和清洗;(4)数据分析;(5)可视化,得出结论

提出问题

一个数据分析的过程,其实是从数据中得到结论的过程。但分析的起点并非数据,而是问题!先确定问题是什么,再投入精力从相关的数据中挖掘答案。

一个好的问题,可以帮助理清方向,将精力集中在数据的相关部分,并帮助你得出有洞察力的分析结果

提出问题之后,就可以从问题入手,确定需要哪些数据,获得进行分析的数据集。也就是数据分析的第二步,“收集数据”。

收集数据

通常情况下,我们想要收集数据,会有4种数据的来源:
1.观测和统计得到的数据
2.问卷和调研得到的数据
3.从数据库中获取的数据
4.从网络爬虫获取的数据
需要根据我们希望获得数据,来判断应该从哪些来源获取。

观测和统计数据

是指经过实地获取的实测数据。这类数据可大可小。

例如:一个商场的客流量。

这是对商场各个出入口的人员进出,按人头统计,汇总的数据,也是实地观测获得的。只是目前会有红外感应装置来获取,不需要人工来数了。

问卷和调研数据
是指通过抽取样本,用问卷或访谈的方式,获取的数据。
有一些需要获取到
个人信息、心理感受的数据,我们需要通过询问访谈获得。

从数据库中获取的数据
数据库,可以简单理解为储存数据的一种结构
我们在计算机、手机上产生的操作行为,被捕捉下来会存储到数据库中。
例如:在电商平台上购买商品记录,会存储在这个电商平台的数据库中。

数据库通过一些工具和SQL语言,可以将数据查询出来,下载成Excel、csv文件,供我们使用。从数据库中查询数据,不是这门课的重点。我们重点来解决的是:数据拿到手后,应该如何使用和分析。

从网络爬虫获取的数据

有时,我们想要获取的数据,并不归属自己所有的数据库。

例如,想要豆瓣的电影评论。

这时就会使用网络爬虫,按照一定规则自动抓取网页信息。组织成我们需要的数据形式。

数据处理和清洗

在收集完问卷数据,开展进一步的分析之前。

Algo对问卷中,填写时长少于5s的问卷数据进行了剔除。

因为填写时长少于5s,大概率是随意填写的,这一部分随便填写的数据,可能会干扰数据的有效性。

这是数据分析的第3步:“数据处理和清洗”。

数据清洗其实有一些很复杂的规则和逻辑,在后面课程中,我们会详细进行学习。

数据分析

数据处理好后,就可以进入“数据分析”的阶段了。

Algo统计了每个选项,使用Python进行初步分析和可视化,每个问题的答案都生成一张柱状图表。

示例:

# 导入模块

import pandas as pd

import matplotlib.pyplot as plt

# 读取文件进行处理

df = pd.read_excel("/Users/survey/数据分析课程调研.xlsx",usecols=[0,3,4,5,6,7,8,9,10,26],skiprows=[1])

df.drop(index = df[df['答题时长']<5].index,inplace = True)

# 对问卷答案进行可视化

plt.figure(1)

plt.subplot2grid((2,3),(0,0),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[2]].isnull()].index)

result1 = df1[list(df.columns)[2]].groupby(df[list(df.columns)[2]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[2])

plt.subplot2grid((2,3),(0,1),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[3]].isnull()].index)

result1 = df1[list(df.columns)[3]].groupby(df[list(df.columns)[3]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[3])

plt.subplot2grid((2,3),(0,2),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[4]].isnull()].index)

result1 = df1[list(df.columns)[4]].groupby(df[list(df.columns)[4]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[4])

plt.subplot2grid((2,3),(1,0),colspan=2,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[5]].isnull()].index)

result1 = df1[list(df.columns)[5]].groupby(df[list(df.columns)[5]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[5])

plt.subplot2grid((2,3),(1,2),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[6]].isnull()].index)

result1 = df1[list(df.columns)[6]].groupby(df[list(df.columns)[6]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[6])

plt.tight_layout()

plt.show()

# 对问题进行可视化

plt.figure(2)

plt.subplot2grid((3,3),(0,0),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[7]].isnull()].index)

result1 = df1[list(df.columns)[7]].groupby(df[list(df.columns)[7]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[7])

data1 = pd.read_excel("/Users/survey/数据分析课程调研.xlsx",usecols=[3,11,12,13,14,15,16],skiprows=1)

data1.drop(index = data1[data1["Unnamed: 3"]<5].index,inplace = True)

data1.drop("Unnamed: 3", axis=1,inplace = True)

data1.drop(index = data1[data1['Excel'].isnull()].index , inplace = True)

plt.subplot2grid((3,3),(0,1),colspan=2,rowspan=1)

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(data1.sum().index , data1.sum().values)

plt.title("Q8_您现在进行数据分析,会用到的工具是?(多选)")

plt.subplot2grid((3,3),(1,0),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[8]].isnull()].index)

result1 = df1[list(df.columns)[8]].groupby(df[list(df.columns)[8]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[8])

data2 = pd.read_excel("/Users/survey/数据分析课程调研.xlsx",usecols=[3,17,18,19,20,21],skiprows=1)

data2.drop(index = data2[data2["Unnamed: 3"]<5].index,inplace = True)

data2.drop("Unnamed: 3", axis=1,inplace = True)

data2.drop(index = data2[data2['步骤繁多,重复操作'].isnull()].index , inplace = True)

plt.subplot2grid((3,3),(1,1),colspan=2,rowspan=1)

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(data2.sum().index , data2.sum().values)

plt.title("Q9_基于目前的工具进行数据分析,会出现的问题是?(多选)")

plt.subplot2grid((3,3),(2,0),colspan=1,rowspan=1)

df1 = df.drop(index = df[df[list(df.columns)[9]].isnull()].index)

result1 = df1[list(df.columns)[9]].groupby(df[list(df.columns)[9]]).count()

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(result1.index , result1.values)

plt.title(list(df.columns)[9])

data3 = pd.read_excel("/Users/survey/数据分析课程调研.xlsx",usecols=[3,22,23,24,25],skiprows=1)

data3.drop(index = data3[data3["Unnamed: 3"]<5].index,inplace = True)

data3.drop("Unnamed: 3", axis=1,inplace = True)

data3.drop(index = data3[data3['学术目的'].isnull()].index , inplace = True)

plt.subplot2grid((3,3),(2,1),colspan=2,rowspan=1)

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

plt.bar(data3.sum().index , data3.sum().values)

plt.title("Q10_想学习Python数据分析的目的是?")

plt.tight_layout()

plt.show()

产生新疑问:

我们现在的分析仅仅停留在简单读取数据分布的层面,难道这就是数据分析的全部了吗?

当然不是。数据分析,是一个循序渐进的过程。

刚刚进行图表可视化的部分,是数据分析最前置的描述性分析

是对得到的大量数据资料进行整理和归纳的初步分析方法。目的是找出数据的大致分布状态,进行单个因素分析。

比如,学员是学生还是职场人,对于学习时间和学习目的,可能会有不同的表现。

这些内在规律,是需要进一步深入,尝试进行挖掘的,也就是探索性分析。

探索性分析

探索性数据分析,是指仅有一些非常浅的假设,通过数据分析方法,深入探索数据。

它有三大作用,包括分析现状、分析原因、预测未来

如果缺失一些基本的数据分析思路,那么面对处理好的数据,也会不知道从何入手。但其实,数据分析的思路非常简单。三大作用分别对应着三个基本思路:对比、细分、预测。

对比

数据的高低,通常需要进行比较,分析它们的差异。

对比可以非常直观地看出变化/差距,并且量化变化/差距是多少。

比如,相同方法调研了《Python办公效率化》的学员。明显对比看,《Python数据分析》课程的学生占比相较更多一些。

另一个常用的对比思路,就是同比和环比。

同比,通常是本期数据和过往的同一期数据的对比。

例如,2020二季度GDP的同比增长,是和2019二季度GDP对比,这就是年同比。可以消除不同季度的季节因素影响。

环比,通常是本期数据和连续周期的上一期数据的对比。

例如,2020二季度全国GDP的环比增长,是和2020一季度对比,这就是环比。可以观测数据连续的变化趋势。

细分

在深入挖掘数据现状,和追溯内部原因的时候。需要在对比的基础上,进行细分分析。

细分,是指将数据划分成不同的部分,从而对比内部各个部分之间异同和关系的思路。

细分分析,可以对比量的直接大小外,还可以对比内部结构

内部结构中,某个部分的比例越大,说明其重要程度越高,影响越大。

一次探索性分析的过程,通常是从问题出发,不断细分对比,从而发现有洞见和针对性的结论。在单一的维度上,不断向下细分,进行维度下钻。或者,在单一的维度上,不断添加新的维度,进行维度交叉
可以说,细分是数据分析的本源。


杜邦分析的本质,就是将想要分析的一个指标,不断拆解为所有影响它的细分指标,分析细分指标的变动,从而挖掘目标的指标。
比如,一个电商平台的销量 = 浏览量 × 转化率,浏览量可以往下拆解,转化率也可以往下拆解。

细分分析中,还有一种知名的分析方法,叫“杜邦分析法”

预测

数据分析中,预测未来是一个非常重要的问题。数据之间客观上存在互相影响和依存的关系。

挖掘这种数据间的关系,就可以通过一个因素的发展,从而推断另一个因素的发展,这就实现了预测。

预测,往往要通过更复杂的数学模型来实现。一般来说分为三种:

相关性分析,回归分析,时间序列模型。

探索性分析

指仅有一些非常浅的假设,通过数据分析方法,深入探索数据。
有三大作用,包括分析现状分析原因预测未来
三大作用分别对应着三个基本思路:对比细分预测

因为图像能更加凸显数据结果,所以,数据分析和可视化往往同时进行。不同的问题,可以根据不同的图像来展现,每种图像各有各的优势。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3.0 + MySQL 8.0 + kkFileView 实现完整文件服务

Spring Boot 3.0 MySQL 8.0 kkFileView 实现完整文件服务 背景&#xff1a;比较常见的需求&#xff0c;做成公共的服务&#xff0c;后期维护比较简单&#xff0c;可扩展多个存储介质&#xff0c;上传逻辑简单&#xff0c;上传后提供一个文件id&#xff0c;后期可直接通过此i…

文生图模型开源之光!ComfyUI - AuraFlow本地部署教程

一、模型介绍 AuraFlow 是唯一一个真正开源的文生图模型&#xff0c;由Fal团队开源&#xff0c;其代码和权重都放在了 FOSS 许可证下。基于 6.8B 参数优化模型架构&#xff0c;采用最大更新参数化技术&#xff0c;还重新标注数据集提升指令遵循质量。在物体空间和色彩上有优势…

OpenAI12天 –第3天的实时更新,包括 ChatGPT、Sora、o1 等

OpenAI提前开启了假期&#xff0c;推出了为期 12 天的活动&#xff0c;名为“OpenAI 12 天”。在接下来的一周左右的每一天&#xff0c;OpenAI 都将发布现有产品的新更新以及新软件&#xff0c;包括备受期待的 Sora AI 视频生成器。 OpenAI 首席执行官 Sam Altman 表示&#x…

06_掌握Python列表、元组、字典、集合

学习完本篇内容,你将掌握以下技能: 列表、元组、字典、集合的创建与删除列表、元组、字典、集合的访问及遍历列表、元组、字典、集合的操作方法列表、元组、字典、集合的生成式列表的基本操作 # 列表的基本操作 # 创建列表 list1 = [1, 2,

Ubuntu Server 22.04.5 LTS重启后IP被重置问题

Ubuntu Server 22.04.5 LTS重启后IP被重置问题 最近在使用Ubuntu Server 22.04做项目开发测试时发现每次重启和关机后&#xff0c;所设置的静态IP地址都会回复到安装系统时所设置的ip Ubuntu Server 22.04 官网下载地址&#xff1a;Ubuntu官方下载地址 对虚拟机下安装Ubuntu感…

QtCreator UI界面 菜单栏无法输入中文

如下图红色所示的区域&#xff0c;直接输入是无法输入中文的&#xff1a; 解决方法&#xff1a;在右边的属性值里输入即可 也可以参考这位同学的解决方法&#xff1a;友情链接

SCI论文丨机器学习与深度学习论文

目录 第一章、ChatGPT-4o使用方法与技巧 第二章、ChatGPT-4o辅助文献检索、总结与分析 第三章、ChatGPT-4o辅助学术论文选题、创新点挖掘与实验方案设计 第四章、ChatGPT-4o辅助学术论文开题与大纲生成 第五章、ChatGPT-4o辅助学术论文写作马拉松活动介绍 第六章、ChatGPT…

ES语句——DSL(kibana语句)

一、查询操作 查看当前索引的数据结构 _mapping Get ai-open-log*/_mapping 查询当前索引下的文档数以及分片信息 _count Get ai-open-log*/_count { "count": 12345, //当前索引下的文档总数 "_shards": { //分片信息 "total&…

【sgUploadImage】自定义组件:基于elementUI的el-upload封装的上传图片、相片组件,适用于上传缩略图、文章封面

sgUploadImage源码 <template><div :class"$options.name"><ul class"uploadImages"><liclass"uploadImage"v-loading"loadings[i]"v-for"(a, i) in imgFiles && imgFiles.length ? imgFiles : 1…

NAT traversal 原理 | TCP / UDP/ P2P

注&#xff1a;本文为 “NAT traversal ”相关的几篇文章合辑。 未整理去重。 NAT 穿越技术原理 Li_yy123 于 2020-12-08 18:54:26 发布 一、NAT 由来 为了解决全球公有 IPv4 的稀缺&#xff0c;提出了 NAT 技术。NAT 是 Network Address Translation 网络地址转换的缩写。 …

算法日记(2024.12.09)

1.二叉树的最小深度 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;2 …

js:事件监听

事件监听 事件监听&#xff1a;让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就调用一个函数做出响应&#xff0c;也称为绑定事件或注册事件 事件&#xff1a;编程系统内发生的动作或发生的事情 比如用户单击一个按钮下拉菜单 添加事件监听 事件监听三要…

Linux驱动开发(12):中断子系统–按键中断实验

本章我们以按键为例讲解在驱动程序中如何使用中断&#xff0c; 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节&#xff0c; 这里主要介绍在驱动中如何使用中断&#xff0c;对于中断的概念及GIC中断控制器相关内容不再进行讲解。 本章配套源码和设备树插件位于“…

距离与AoA辅助的三维测距算法,适用于自适应基站数量的情况。订阅专栏后可直接查看完整源代码

本MATLAB 代码实现了一个基于距离与到达角(AoA)的三维测距系统,主要用于在动态环境中估计目标物体的位置。提供本算法与仅侧角(AoA)的定位误差对比 文章目录 代码运行结果源代码代码功能概述主要步骤分析初始化部分AOA定位绘图部分输出部分代码的应用和意义总结代码运行结…

解决社区版IDEA新建项目没有Spring Initializr 选项 2023.2版本

方法一 1.打开Preference 2.选择Plugins插件管理&#xff0c;并安装Spring Boot Helper&#xff08;选择marketplace -> install -> 安装后勾选&#xff09; 3.重启restart后打开IDEA&#xff0c;有spring initializr选项 结束。 参考 https://blog.csdn.net/qq_2…

计算机键盘简史 | 键盘按键功能和指法

注&#xff1a;本篇为 “计算机键盘简史 | 键盘按键功能和指法” 相关文章合辑。 英文部分机翻未校。 The Evolution of Keyboards: From Typewriters to Tech Marvels 键盘的演变&#xff1a;从打字机到技术奇迹 Introduction 介绍 The keyboard has journeyed from a humb…

基于单片机的空调温度控制器设计

摘 要 随着国民经济的发展和人民生活水平的提高&#xff0c;空调已被广泛应用于社会的各种场合。空调因具有节能、低噪、恒温控制、全天候运转、启动低频补偿、快速达到设定温度等性能&#xff0c;大大提高了其舒适性&#xff0c;得到越来越多的人们的喜爱。单片机和数字温度传…

【慕伏白教程】Zerotier 连接与简单配置

文章目录 下载与安装WindowsLinuxapt安装官方脚本安装 Zerotier 配置新建网络网络配置 终端配置WindowsLinux 下载与安装 Windows 进入Zerotier官方下载网站&#xff0c;点击下载 在下载目录找到安装文件&#xff0c;双击打开后点击 Install 开始安装 安装完成后&#xff0c;…

DDR的跨4K问题

参考视频&#xff1a;【深入理解FPGA底层逻辑】、4k边界和outsdanding_哔哩哔哩_bilibili 1、AXI4_FULL突发写一个字节是一个地址&#xff0c; 2、协议规定&#xff0c;把AXI4从机的地址区间从0进行到了4095....每4K进行一次分配 所以突发长度的计算如下&#xff1a; 另外AX…

Spark on Yarn安装配置,大数据技能竞赛(容器环境)

Spark on Yarn模式&#xff0c;即把Spark作为一个客户端&#xff0c;将作业提交给Yarn服务&#xff0c;由于在生产环境中&#xff0c;很多时候都要与Hadoop使用同一个集群&#xff0c;因此采用Yarn来管理资源调度&#xff0c;可以有效提高资源利用率。 环境说明&#xff1a; 服…