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…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
