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…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
