Pandas01
文章目录
- 内容简介
- 1 常用数据分析三方库
- 2 Jupyter notebook
- 3 Series的创建
- 3.1 通过Numpy的Ndarray 创建一个Series
- 3.2 通过列表创建Series
- 4 Series的属性和方法
- 4.1 常用属性
- 4.2 常用方法
- 4.3 布尔值列表筛选部分数据
- 4.4 Series 的运算
- 5 DataFrame的创建
- 通过字典创建
- 通过列表[元组] 列表[列表] 方式创建
- 6 DataFrame的属性和方法
- 6.1 常用属性
- 6.2 常用方法
- 6.3 布尔索引. 条件取值
- 6.4 两个DF之间进行计算
内容简介
Pandas
- 环境搭建起来 Anaconda
- Series
- DataFrame
- 增加 删除 修改 查询数据
- 修改表结构 常用的方法
- 日期时间类型, 分组聚合, 表连接
- 数据可视化
- 直方图 折线图 柱状图 散点图 饼图 箱线图 热力图…
业务
- 常见指标
- 数据分析工作基本技能
- 取数, 做报表
- 专题/专项分析
- 数据分析的思维 分群, 下钻, 漏斗…
- 数据分析模型 规则模型
- 指标异常波动分析
- 报告能力
- AB测试 (中 大公司)
1 常用数据分析三方库
Pandas
- 底层调用Numpy Numpy是一个高效的科学计算库 , 基本的数据结构是 ndarray (N维数组)
- Pandas 给numpy的Ndarray 添加行列名字, 具体的计算还是调用Numpy来实现的
- 重要对象
- Series 一列数据
- DataFrame 二维表格
MatPlotLib (静态绘图 jpg, png svg)
- Python 数据可视化的三方库
- Pandas的数据可视化功能就是调用的MatPlotLib
- Seaborn 基于MatPlotLib
基于JS 的绘图库 (html 页面上展示)
- pyecharts
2 Jupyter notebook
Anaconda的安装
-
安装好之后, 可能会遇见的问题
bad file descriptor
-
pip uninstall pyzmq
-
pip install pyzmq -i https://pypi.tuna.tsinghua.edu.cn/simple/
Anaconda 是 python的发型版 是数据科学用到的三方库的集合
- 安装好了之后, 默认会有一个base的虚拟环境 在base 环境里装了数据科学相关的三方库
- 集成了conda这个包管理器, 在anaconda的环境下, 也可以通过conda install XXXX 来安装三方库
- conda 也可以管理虚拟环境
- 为什么要有虚拟环境
- Python库 如果版本更新了, 一些老的方法可能会被删除
- 举例 Pandas 升级到了2.X版本, 我想用2.x版本的新功能, 项目是在1.5.3 环境下开发的
- 为什么要有虚拟环境
Pycharm下运行notebook
项目创建好之后, 修改解释器
添加本地解释器
选择conda解释器
设置好解释器之后, 可以直接右键单击项目,新建文件
Jupyter notebook 常用快捷键
- 命令模式和编辑模式之间的切换 ESC
- 命令模式下
- dd 删除cell
- b 在当前cell下面添加一个cell
- a 在当前cell上面添加一个cell
- ctr + 回车 / shift+ 回车 运行一个cell
- m 切换到markdown 模式 y 切换到代码模式
3 Series的创建
3.1 通过Numpy的Ndarray 创建一个Series
n1 = np.array([1,2,3])
type(n1)
# 创建一个Series对象
s =pd.Series(n1)
type(s)# 我们在创建Series的时候, 如果不指定索引, Pandas也会自动帮助我们添加一个索引
# 默认加的索引是从0开始的整数 RangeIndex
s.index
3.2 通过列表创建Series
s1 = pd.Series(n1,index=['a','b','c'])
s1.indexs3 = pd.Series(['香蕉','apple',2],index=[1,2,3])
#%%
s3.index
#%%
data_dict = {'Age':18,'Name':'Tom','Job':'大数据工程师'}
s4 = pd.Series(data_dict)
#%%
s4.values
index 索引
values 值
4 Series的属性和方法
4.1 常用属性
index : 索引
values: 值
shape: 形状 返回一个元组 (行数,)
size: 返回整数 有多少个值
dtypes/dtype 数据类型
4.2 常用方法
访问前5条数据/后五条数据
s.head()
s.tail()
Series转换成列表和DataFrame
s1.tolist()
s1.to_list()
# s对象转换成df对象
s1.to_frame()
s对象最大值、最小值、平均值、求和值
# s对象最大值、最小值、平均值、求和值
s1.max()
s1.min()
s1.mean()
s1.sum()
describe()方法, 一次性返回多个统计量
- count() 计数
- mean() 求平均
- std() 求标准差 标准差反应数据的离散程度
- 方差 = ∑(每一个值 - 平均值)²/总数
- 标准差 = 方差开根号
- min()
- quantile()
- 计算分位数
- 1/4 分位数 把数据从小到大排序, 排在25% 那个位置的数就是25%分位数
- 中位数: 把数据从小到大排序, 排在正中间的那个数就是中位数
- 3/4 分位数 把数据从小到大排序, 排在75% 那个位置的数就是75%分位数
- max()
去重/排序/返回唯一值
- drop_duplicates()
- inplace 默认值 False 不会在原来的数据上修改, 而是在一个副本上修改, 并把修改之后的副本返回
- inplace = True 直接修改原始的数据 方法不会有返回值
- sort_values() 值排序 ascending = True 升序(默认值) False降序
- sort_index() 索引排序
- unique() / nunique()
- 返回ndarray 由唯一值组成
- nunique 返回唯一值数量
4.3 布尔值列表筛选部分数据
想通过某个条件在Series选出满足条件的部分数据, 可以使用布尔索引(布尔值列表/布尔值的Sereis)
df = pd.read_csv('C:/Develop/深圳42/data/scientists.csv')
从数据中筛选出年龄大于平均值的科学家的名字
df['Name'][df['Age']>df['Age'].mean()]
df[‘Age’]>df[‘Age’].mean() 会返回由True和False组成的布尔值的Series
把它通过[] 丢进来, 可以做数据的过滤
- True对应数据行会被保留, False对应的数据行会被删除
这里也可以传一个和Series长度一致的boolean的list
多个条件的连接 职业是化学家, 并且 年龄大于平均年龄
df['Name'][(df['Age']>df['Age'].mean()) & (df['Occupation']=='Chemist')]
两个boolean 值组成的series 做 与 或者 或 的运算需要用& | 符号 不能用 and or
& | 是按位运算, 会把两个series中每一行做对应的 与 或计算
and or 只能是 做 一个True /False 和另一个 True /False 的计算 ,如果遇见了下面的报错, 要知道是什么原因
4.4 Series 的运算
Series 和 一个数值/字符串 进行计算
- 每一个元素都会跟这个 数值/字符串 进行计算
- 这一点和Python的列表不一样, Python的列表想要实现相同的效果必须需要遍历
两个Series之间进行计算
- 按照 index (行索引) 进行对齐
- 两个Series index相同的行会在一起进行计算
- 不同的会返回NaN (空值)
5 DataFrame的创建
通过字典创建
dict_data = {'id':[1,2,3],'name':['张三','李四','Apple'],'age':[21,22,23]}
df = pd.DataFrame(dict_data,columns=['id','age','name'],index=['a','b','c'])
df
通过列表[元组] 列表[列表] 方式创建
list_data =[(1,'张三',21),(2,'李四',22),(3,'王五',23)]
df = pd.DataFrame(list_data,columns=['id','age','name'])
df
6 DataFrame的属性和方法
6.1 常用属性
df.index
df.columns # 列名 列索引
df.values # 值 返回的类型 ndarray
df.shape # (行数,列数) df.shape[0]
6.2 常用方法
加载数据之后的了解,认识数据的常规套路
df.head() # 看一眼数据长什么样
df.info() # 数据类型, 有没有空值
df.describe() # 看数据的分布情况, 和业务常识是否一致
df.sort_values( by = 列名) # 按照某一列排序
6.3 布尔索引. 条件取值
和Series的布尔值列表取值用法完全一致
6.4 两个DF之间进行计算
DF和 某个具体的值(字符串, 数字 )进行计算
- 每个元素都会跟这个值之间进行计算
两个Df之间进行计算 和Series算法一样
- 使用行名字进行对齐
若有错误与不足请指出,关注DPT一起进步吧!!!
相关文章:

Pandas01
文章目录 内容简介1 常用数据分析三方库2 Jupyter notebook3 Series的创建3.1 通过Numpy的Ndarray 创建一个Series3.2 通过列表创建Series 4 Series的属性和方法4.1 常用属性4.2 常用方法4.3 布尔值列表筛选部分数据4.4 Series 的运算 5 DataFrame的创建通过字典创建通过列表[元…...
opencl 封装简单api
这是cl代码 kernel.c __kernel void add_one(__global float *output,__global float* pnum) {int xget_global_id(0);output[x]pnum[0]; } c代码 #include <CL/cl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include<st…...

超快速的路径优化IKD-SWOpt:SHIFT Planner 中增量 KD 树滑动窗口优化算法详解
IKD-SWOpt:SHIFT Planner 中增量 KD 树滑动窗口优化算法详解 今天本博主王婆卖瓜自卖自夸😄,介绍自己paper中的算法,本算法已经持续开源中(部分关键内容)Github,之前很多读者朋友一直说要详细讲讲路径优化算法&#x…...

精读DeepSeek v3技术文档的心得感悟
最近宋大宝同学读完了DeepSeekv3的文档,心中颇多感慨,忍不住想在这里记录一下对这款“业界有望启示未来低精度训练走向”的开源大模型的观察与思考。DeepSeek v3的亮点绝不仅仅是“Float8”或“超长上下文”这么简单,而是贯穿了从数值精度、注…...

【Java数据结构】LinkedList与链表
认识LinkedList LinkedList就是一个链表,它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来,所以不需要数组。LinkedList也是以泛型的方法实现的,所以使用这个类都需要实例化对象。 链表分为很多种,比…...

uniapp——微信小程序,从客户端会话选择文件
微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档: chooseMessageFile 微信小程序读取文件,请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…...

【CSS in Depth 2 精译_098】17.3:CSS 动画延迟技术与填充模式设置 + 17.4:通过 CSS 动画传递意图的秘诀
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第五部分 添加动效 ✔️【第 17 章 动画】 ✔️ 17.1 关键帧17.2 3D 变换下的动画设置 17.2.1 添加动画前页面布局的构建17.2.2 为布局添加动画 17.3 动画延迟与填充模式 ✔️17.4 通过动画传递意图…...

Oracle考试多少分算通过?
OCP和OCM认证的考试及格分数并不是固定的,而是根据考试的难度和考生的整体表现来确定。对于OCP认证,考生需要全面掌握考试要求的知识和技能,并在考试中表现出色才有可能通过。而对于OCM认证,考生则需要在每个模块中都达到一定的水…...
在云服务器中编译IDF(ESP32库)
登录云服务器 使用gitee从github上导入仓库 地址GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for Espressif SoCs. 然后在云服务器中创建目录~/esp 进入路径后使用git clone 下载项目 进入编程指南ESP-IDF 编程指南…...

Oracle 日常巡检
1. 检查服务器状态 1.1. CPU使用情况 1.1.1. top top 命令是 Linux 和 Unix 系统中用于显示实时系统状态的工具,特别是对于监控 CPU 和内存的使用非常有用。 在命令行中输入 top,top 会显示一个实时更新的界面,其中包含系统的关键指标&am…...

机器学习常用术语
目录 概要 机器学习常用术语 1、模型 2、数据集 3、样本与特征 4、向量 5、矩阵 6、假设函数与损失函数 7、拟合、过拟合与欠拟合 8、激活函数(Activation Function) 9、反向传播(Backpropagation) 10、基线(Baseline) 11、批量(Batch) 12、批量大小(Batch Size)…...

springboot507基于Springboot教学管理系统(论文+源码)_kaic
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装教学管理系统软件来发挥其高效地信息处理的作用,…...
工具变量笔记
补充知识 简单介绍工具变量 假设 Y i α β D i ϵ i Y_i\alpha\beta D_i\epsilon_i YiαβDiϵi, where E ( ϵ i ∣ D i ) 0 E(\epsilon_i\mid D_i)0 E(ϵi∣Di)0. 但是通常这个条件不满足。于是假如有这样一个工具变量 Z i Z_i Zi存在的话,满…...
ElasticSearch 统计分析全攻略
在大数据时代,数据的价值不仅在于存储,更在于能够从中挖掘出有意义的信息。ElasticSearch 作为一款强大的分布式搜索引擎,除了具备出色的搜索功能外,其内置的统计分析能力也不容小觑,能够助力我们快速洞察数据背后的规…...
DataCap MongoDB Driver: 全面解析MongoDB在DataCap中的使用指南
在大数据时代,MongoDB作为一款广受欢迎的NoSQL数据库,其灵活的文档存储模型和强大的查询能力使其成为许多现代应用的首选数据存储方案。今天,我们将深入探讨DataCap MongoDB Driver,这是一个强大的工具,它让在DataCap环…...

DDSort-简单实用的jQuery拖拽排序插件
DDSort.js是一款简单实用的jQuery拖拽排序插件。通过该插件你可以任意拖动页面中元素,并放置到指定的地方。DDSort.js插件实用简单,兼容IE8浏览器。 在线预览 下载 使用方法 实用该拖拽排序插件需要在页面中引入jquery文件和ddsort.js文件。 <scri…...

「下载」智慧园区及重点区域安全防范解决方案:框架统一规划,建设集成管理平台
智慧园区在基础设施建设和管理上仍存在诸多挑战。园区内场景碎片化、系统独立化、数据无交互、应用无联动等问题普遍存在,导致管理效率低下,安全隐患频发。 各安保系统如视频监控系统、报警管理系统、门禁管理系统等独立运行,数据不共享&…...
华为 IPD,究竟有什么特点?(一)
关注作者 (一)华为版 IPD 特点一:一定要让研发转身为作战 部队 冲到前台的研发,应主动拉通公司上下游,向前抓需求,向后支撑可制造性、可 服务性,并推动制造、服务的改进。 1)研发从…...

Llama 3 后训练(三)
目录 4. 后训练 4.1 建模 图表解读 4.1.1 聊天对话格式 4.1.2 奖励建模 4.1.3 监督微调(Supervised Finetuning) 4.1.4 直接偏好优化(Direct Preference Optimization) 4.1.5 模型平均(Model Averaging&#x…...

Docker 安装全攻略:从入门到上手
Docker 安装全攻略:从入门到上手 在当今的软件开发与部署领域,Docker 已经成为了一项不可或缺的关键技术。它能够将应用程序及其依赖项打包成轻量级、可移植的容器,极大地简化了开发、测试和部署的流程。本文将详细讲解在不同操作系统下 Doc…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...