当前位置: 首页 > news >正文

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&#xff1a;SHIFT Planner 中增量 KD 树滑动窗口优化算法详解 今天本博主王婆卖瓜自卖自夸&#x1f604;&#xff0c;介绍自己paper中的算法&#xff0c;本算法已经持续开源中(部分关键内容)Github&#xff0c;之前很多读者朋友一直说要详细讲讲路径优化算法&#x…...

精读DeepSeek v3技术文档的心得感悟

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

【Java数据结构】LinkedList与链表

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

uniapp——微信小程序,从客户端会话选择文件

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

【CSS in Depth 2 精译_098】17.3:CSS 动画延迟技术与填充模式设置 + 17.4:通过 CSS 动画传递意图的秘诀

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 17 章 动画】 ✔️ 17.1 关键帧17.2 3D 变换下的动画设置 17.2.1 添加动画前页面布局的构建17.2.2 为布局添加动画 17.3 动画延迟与填充模式 ✔️17.4 通过动画传递意图…...

Oracle考试多少分算通过?

OCP和OCM认证的考试及格分数并不是固定的&#xff0c;而是根据考试的难度和考生的整体表现来确定。对于OCP认证&#xff0c;考生需要全面掌握考试要求的知识和技能&#xff0c;并在考试中表现出色才有可能通过。而对于OCM认证&#xff0c;考生则需要在每个模块中都达到一定的水…...

在云服务器中编译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 系统中用于显示实时系统状态的工具&#xff0c;特别是对于监控 CPU 和内存的使用非常有用。 在命令行中输入 top&#xff0c;top 会显示一个实时更新的界面&#xff0c;其中包含系统的关键指标&am…...

机器学习常用术语

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

springboot507基于Springboot教学管理系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装教学管理系统软件来发挥其高效地信息处理的作用&#xff0c…...

工具变量笔记

补充知识 简单介绍工具变量 假设 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​存在的话&#xff0c;满…...

ElasticSearch 统计分析全攻略

在大数据时代&#xff0c;数据的价值不仅在于存储&#xff0c;更在于能够从中挖掘出有意义的信息。ElasticSearch 作为一款强大的分布式搜索引擎&#xff0c;除了具备出色的搜索功能外&#xff0c;其内置的统计分析能力也不容小觑&#xff0c;能够助力我们快速洞察数据背后的规…...

DataCap MongoDB Driver: 全面解析MongoDB在DataCap中的使用指南

在大数据时代&#xff0c;MongoDB作为一款广受欢迎的NoSQL数据库&#xff0c;其灵活的文档存储模型和强大的查询能力使其成为许多现代应用的首选数据存储方案。今天&#xff0c;我们将深入探讨DataCap MongoDB Driver&#xff0c;这是一个强大的工具&#xff0c;它让在DataCap环…...

DDSort-简单实用的jQuery拖拽排序插件

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

「下载」智慧园区及重点区域安全防范解决方案:框架统一规划,建设集成管理平台

智慧园区在基础设施建设和管理上仍存在诸多挑战。园区内场景碎片化、系统独立化、数据无交互、应用无联动等问题普遍存在&#xff0c;导致管理效率低下&#xff0c;安全隐患频发。 各安保系统如视频监控系统、报警管理系统、门禁管理系统等独立运行&#xff0c;数据不共享&…...

华为 IPD,究竟有什么特点?(一)

关注作者 &#xff08;一&#xff09;华为版 IPD 特点一&#xff1a;一定要让研发转身为作战 部队 冲到前台的研发&#xff0c;应主动拉通公司上下游&#xff0c;向前抓需求&#xff0c;向后支撑可制造性、可 服务性&#xff0c;并推动制造、服务的改进。 1&#xff09;研发从…...

Llama 3 后训练(三)

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

Docker 安装全攻略:从入门到上手

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

Python Cookbook-7.12 在 SQLite 中储存 BLOB

任务 想将 BLOB 存入一个 SQLite 数据库, 解决方案 Python的 PySQLite 扩展提供了 sqlite.encode 函数,它可帮助你在 SOLite 数据库中插入二进制串。可以基于这个函数编写一个小巧的适配器类: import sqlite,cPickle class Blob(object):自动转换二进制串def __init__(self…...

蓝耘服务器与DeepSeek的结合:引领智能化时代的新突破

&#x1f31f; 嗨&#xff0c;我是Lethehong&#xff01;&#x1f31f; &#x1f30d; 立志在坚不欲说&#xff0c;成功在久不在速&#x1f30d; &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞⬆️留言收藏&#x1f680; &#x1f340;欢迎使用&#xff1a;小智初学…...

ClusterRole 和 ClusterRoleBinding 的关系及使用

ClusterRole 和 ClusterRoleBinding 是 Kubernetes 中用于控制集群范围权限的两个重要资源&#xff0c;它们共同构成了 Kubernetes RBAC (基于角色的访问控制) 系统的核心部分。 两者的关系 ClusterRole 定义了一组权限规则&#xff0c;指定了可以对哪些资源执行哪些操作 Clu…...

基于J2EE架构的在线考试系统设计与实现【源码+文档】

目录 摘要: Abstract: 1 引言 2 在线考试系统构架 2.1 在线考试系统一般需求分析 2.2 当前在线考试系统现状分析 2.3 基于J2EE的在线考试系统架构介绍及拥有的优势 2.3.1 结构总体介绍 2.3.2 客户层组件 2.3.2.1 Applets 2.3.2.2 应用程序客户端 2.3.3 …...

软件功能模块归属论证方法

文章目录 **一、核心设计原则****二、论证方法****三、常见决策模式****四、验证方法****五、反模式警示****总结** 在讨论软件功能点应该归属哪些模块时&#xff0c;并没有放之四海而皆准的固定方法&#xff0c;但可以通过系统化的论证和设计原则来做出合理决策。以下是常见的…...

深度学习环境配置指南:基于Anaconda与PyCharm的全流程操作

一、环境搭建前的准备 1. 查看基础环境位置 conda env list 操作说明&#xff1a;通过该命令确认Anaconda默认环境&#xff08;base&#xff09;所在磁盘路径&#xff08;如D盘&#xff09;&#xff0c;后续操作需跳转至该磁盘根目录。 二、创建与激活独立虚拟环境 1. 创…...

深入理解二叉搜索树:原理到实践

1.二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树 若它的左树不为空&#xff0c;则左子树上所有节点的值都小于或等于根节点的值。若它的右树不为空&#xff0c;则右子树上所有节点的值都大于或等于根节点的…...

VsCode 安装 Cline 插件并使用免费模型(例如 DeepSeek)

当前时间为 25/6/3&#xff0c;Cline 版本为 3.17.8 点击侧边栏的“扩展”图标 在搜索框中输入“Cline” 找到 Cline 插件&#xff0c;然后点击“安装” 安装完成后&#xff0c;Cline 图标会出现在 VS Code 的侧边栏中 点击 Use your own API key API Provider 选择 OpenRouter…...

Cursor快速梳理ipynb文件Prompt

1. 整体鸟瞰 请在不运行代码的前提下&#xff0c;总结 <文件名.ipynb> 的主要目的、核心逻辑流程和输出结果。阅读整个项目目录&#xff0c;列出每个 .ipynb / .py 文件的角色&#xff0c;以及它们之间的数据依赖关系&#xff08;输入→处理→输出&#xff09;。2. 结构…...

《PMBOK® 指南》第八版草案重大变革:6 大原则重构项目管理体系

项目管理领域的权威指南迎来关键升级&#xff01;PMI 最新发布的《PMBOK 指南》第八版草案引发行业广泛关注&#xff0c;此次修订首次将项目管理原则浓缩为 6 大黄金法则&#xff0c;重构 7 大绩效域&#xff0c;并首度公开过程组与绩效域的映射关系。本文将全面解析新版核心变…...