惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Visual Studio Blog
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
IT之家
IT之家
博客园_首页
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - Franky
雷峰网
雷峰网
罗磊的独立博客
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
T
Tailwind CSS Blog
B
Blog RSS Feed
H
Help Net Security
T
The Blog of Author Tim Ferriss
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
P
Palo Alto Networks Blog
I
Intezer
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
S
Securelist
J
Java Code Geeks
V
V2EX
Y
Y Combinator Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
Webroot Blog
Webroot Blog
Microsoft Security Blog
Microsoft Security Blog
SecWiki News
SecWiki News
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
数据分析工具:Pandas架构分析
我是产品张 · 2024-07-16 · via 人人都是产品经理

在工作中,我们一般用excel或者SQL来处理和分析数据,本文分享了Pandas框架,给出该工具的使用方法,供大家参考。

以往数据分析常使用的工具是excel和sql,用这两个工具做过大数据分析的网友都能感受到那种痛苦,本文对Python的Pandas大数据分析工具做架构分析,以方便掌握该强大的工具。

本文的架构分析是通过阅读pandas中文出版物教程、互联网搜索、代码验证的基础上得到的结构猜想,并没有深入源代码分析,实际架构与本分析可能略有出入,请知悉。

1. 结构概览

Pandas就是数据容器,容器好不好用,不仅取决于容器能装多少东西,更取决于,取出来是否方便。Pandas的Series和DataFrame作为数据容器就像一本书。

  • 数组容器:就是这本书只有页码。如果书本不超过几百页,或者使用的很少,使用起来并没有问题,如果书本有十万页,频繁找东西时肯定就麻烦了。数据分析就像在几十万、几百万页的书本里,找数据,只有页码是不够用的。
  • Index容器:Index是对数组容器页码的拓展,在原页码的基础上增加了文本描述,读者对频繁使用的章节可以夹个标签。Index容器有很多子类型,可以简化索引的使用,如:DatetimeIndex、PeriodIndex、IntervalIndex等
  • MultiIndex容器:是对Index容器的组合,不仅支持一层便签,可以支持任意层便签,通过该容器可以实现目录管理。

Series是一列数据值,DataFrame是N列数据是,是N个Series的组合。Series和DataFrame从容器的角度,主要拓展的是索引部分,两者的分为index和values两部分,其中index是索引,有复杂的各种实现类。values仍是ndarray类型。

2. Series

Series是对数组的封装,比普通数组新增index的属性。不考虑MultIndex的场景该图是准确的,考虑MultiIndex,书签信息可以有无数列数据。

2.1 数据初始化

Series的两列位置信息,页码信息是系统自动编码,无法人工介入。书签信息是手动编码,可以指定也可以不指定。

索引列和对象可以单独起名字。value没有名字

2.2 通过Index定位值

数组支持按位置访问,比如s[1]

Series支持按位置和按index访问两种方式。

  • Series传入的标签参数可以换算为位置信息。
  • loc和iloc返回值是向量
  • at和iat返回值为标量

位置信息的使用,用SQL表达就是:from 原表 where index.loc in() or index.lable in()

2.3 通过值定位Index

  • 函数返回值为bool类型的Series
  • 要得到index值或者数据向量,需要再调用一次se.loc[]

此处函数的使用,用SQL表达就是:from 原表 y left join BoolSeries yi where y.index = yi.index and yi.value =True

2.4 MultiIndex构建

Index和MultiIndex都是数组,数组的个数=数据的行数。Index数组的元素是标量数值。MultiIndex的数组元素是元组,可以是二元组、三元组、四元组等。

这里的目录操作,也是人工智能算法打标签的地方,打好标签就可以分群,就可以推荐了。

对于Series由于只有一列数据,所有列的层级就没有建目录的功能,DataFrame有此功能。

2.5 时间构建目录

时间可以按年、月、日、时、分这五个维度构成一个目录层级结构,可以用目录实现。直接使用DatetimeIndex对象构建:

3. DataFrame

DataFrame是有多个Series或数组联表而成的组装表。

Series和数组的组装方式分为三种场景,每种场景有几种存在的组合,如图,绿色的组合场景是合法的,白色的组合场景是非法的。

3.1 多个数组合并

数组和DataFrame的维度信息对照:

  • 数组是有序的,所以有位置信息,位置信息是隐含的。隐式对应于DataFrame的index属性。
  • 数组是有值的,所以有数值信息,数值信息是显式的。显式对应DataFrame的value属性。

数组和DataFrame的存储值对照:

  • 数组的值存储的是地址,所以数组可容纳数值、字符串、对象等任意类型。
  • DataFrame每列存储的类型是固定的,所以DataFrame组装时,会自动转换数据类型。

组装关系用SQL表示为:

原则猜测:

之所以数组组装要求严格,是因为数组本身很灵活,数据清洗程度低,数据脏乱差的概率更大,所以此处严格校验,可以降低数据错误的风险。

3.2 多个Series合并

多个series组成DataFrame实际执行的是连表操作,效果等同于Sql语句的全连接。

3.3 Series和数组合并

只要有数组存在,就必须完全对齐,索引列使用Series的索引列。系统默认Series和数组的索引列按照所在顺序建立联表关系。

当Series和数组组成DataFrame时,按照从严法则,必须上下对齐。

4. 数据分组

分组是根据索引将数据聚合,两种方法:

  • 显式声明索引,可以直接使用索引分组
  • 不声明索引,调用groupby后自动创建索引

分组有三个维度:

  • 行维度分组:groupby
  • 行维度分组+列维度分组:数据透视表 pivot
  • 按顺序,固定行数组成窗口分组:rolling、expanding

4.1 显式声明索引后分组

4.2 分组后自动创建索引

4.3 行维度分组

4.4 行列两维度分组

4.4.1 单行单列写法

4.4.2 多行单列写法

4.4.3 多行多列写法

4.5 窗口滚动分组

滚动分组是按照位置数量分组,实际工作中常说的过去1年,过去一个月,过去一周,以及时间函数都使用滚动计算的理念。

窗口函数与窗口累计函数都可以使用apply函数拿到窗口的值数组,可以使用该值,做任意匹配的运算。

4.6 窗口累计分组

5. 改变数据形状

Pandas中,处理的数据基本都是按表格组织,数据输入有两种方式,按行输入,按列输入。为了输入方便基本会按长轴维度输入数据。

比如8行两列的数据,可以按照行的顺序写,也可以按照列的顺序写。对于该数据,肯定是按列的顺序书写,需要输入的中括号最少。数据输入后再处理即可。

图中可知,数据调用zip分组后,从数据分组的角度看:zip和数据转置的效果是一致的。

6. 数据查询逻辑

Series和DataFrame作为数据容器,数据查询是很重要的逻辑,此处再系统梳理一下流程。

6.1 按索引取值

按索引取值,类比于select的按照主键取值。Pandas接受到入参索引后,会构建一个与被查询数据,相同索引的Series,其中被查询的索引对应值为True,未被查询的索引对应值为False,将该Series作为入参,查询效果与直接输入索引查询效果相同。

代码如下:

6.2 按值取值

按照值取值时,每个运算符对应一个Bool。如果Bool之间是and关系,就执行b1*b2如果Bool之间是or关系,就执行b1+b2

7. 不同数据类型之间的转换逻辑

8. Index展开详解

8.1 概述

index是比数组更大的容器,数组内的元素可以是不同的类型,index统一定义了数组的类型,必须是obj、Datetime、int、Period等其中的一种。index会猜测数组内存储的数据类型,如果是数值,会自动转换为对应的类型,否则统一定义为object类型。

  • 定义object类型的好处是:可以存储任意类型的数据。
  • 定义object类型的缺点是:大而全,就没有操作数据的方法。小而精,才可以使用对应的操作方法。
  • 为了调用int、Datetime类型数据对应的操作方法,需要显式的转换为对应的类型。

8.2 DatetimeIndex

DatetimeIndex就是Datetime格式的index。日期是一组连续的数字,默认可以按照年、月、日、时、分、秒分组,也可以自定义时间段分组。如果某Series或者DataFrame需要使用年月日时分秒做分组依据,有两个方案:

8.2.1 年月日时分组成5列数组,通过MultiIndex赋值

将字符数组转为

8.2.2 直接将日期转为Datetimeindex赋值,用方法取值

两个对比,显然第二个方案更简单灵活。

9 .常用函数说明

9.1 map与replace的等价写法

map可以将任意值改名其他值,此处主要介绍将Bool转成文本。因为在查询函数返回的值都为bool类型,所以此场景使用map函数的频率更高。

map的传参是集合,是因为这里传值是映射关系。

调用多次replace函数的效果与调用map函数的结果相同。

9.2 isna与isin的等价写法

isna与isin(pd.NA)是等价的。fillna与replace(pd.Na)是等价的。

9.3 notna与notin的等价写法

pandas没有not in函数。但是有波浪线表示取反,即True取反后是False,False取反后是True

9.4 列拆分函数split

Series分列,默认是将内容分成,数组,不会展开。

9.4.1 默认为Series格式

9.4.2 数据自动变成DataFrame格式

本文由 @我是产品张 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。