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…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
