<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>第 4 章：聚合与分组（Aggregation &amp; Grouping） on 跟我学机器学习</title><link>https://machinelearningwithme.com/course/pandas/chapter04/</link><description>Recent content in 第 4 章：聚合与分组（Aggregation &amp; Grouping） on 跟我学机器学习</description><generator>Hugo</generator><language>zh_CN</language><lastBuildDate>Sat, 24 Oct 2026 22:59:29 +0800</lastBuildDate><atom:link href="https://machinelearningwithme.com/course/pandas/chapter04/index.xml" rel="self" type="application/rss+xml"/><item><title>Pandas 聚合与分组详解：groupby、agg、pivot_table、crosstab 与多级分组 | Pandas 数据分析实战</title><link>https://machinelearningwithme.com/course/pandas/chapter04/core-concepts/</link><pubDate>Sat, 24 Oct 2026 22:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/pandas/chapter04/core-concepts/</guid><description>&lt;h1 id="第-41-节-核心知识点"&gt;第 4.1 节 核心知识点&lt;a class="anchor" href="#%e7%ac%ac-41-%e8%8a%82-%e6%a0%b8%e5%bf%83%e7%9f%a5%e8%af%86%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;预计学习时长：&lt;/strong&gt; 45 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本节目标：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;知道 &lt;code&gt;groupby()&lt;/code&gt; 到底做了什么（拆 → 算 → 拼）；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;sum&lt;/code&gt; / &lt;code&gt;mean&lt;/code&gt; / &lt;code&gt;count&lt;/code&gt; / &lt;code&gt;size&lt;/code&gt; / &lt;code&gt;max&lt;/code&gt; / &lt;code&gt;min&lt;/code&gt; 做统计；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;agg()&lt;/code&gt; 给不同列指定不同的聚合函数；&lt;/li&gt;
&lt;li&gt;分得清 &lt;code&gt;agg()&lt;/code&gt;（每组出一个值）和 &lt;code&gt;transform()&lt;/code&gt;（每组出一个值再广播回每一行）；&lt;/li&gt;
&lt;li&gt;会用 &lt;code&gt;pivot_table()&lt;/code&gt; 做二维汇总、&lt;code&gt;crosstab()&lt;/code&gt; 做交叉频数；&lt;/li&gt;
&lt;li&gt;会按多个字段做多级分组。&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;h2 id="先说清楚一件事groupby-到底做了什么"&gt;先说清楚一件事：groupby 到底做了什么&lt;a class="anchor" href="#%e5%85%88%e8%af%b4%e6%b8%85%e6%a5%9a%e4%b8%80%e4%bb%b6%e4%ba%8bgroupby-%e5%88%b0%e5%ba%95%e5%81%9a%e4%ba%86%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;一句话：&lt;strong&gt;拆 → 算 → 拼。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;准备数据：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pandas&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data &lt;span style="color:#666"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;订单号&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;1001&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1002&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1003&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1004&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1005&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1006&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1007&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1008&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;下单日期&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-05&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-08&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-12&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-03&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-15&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-02&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-20&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-04-08&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;深圳&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;商品&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;电脑&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;键盘&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;显示器&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;销量&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;单价&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;金额&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1797.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1495.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2396.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;客户评分&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;4.5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3.9&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.6&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;df &lt;span style="color:#666"&gt;=&lt;/span&gt; pd&lt;span style="color:#666"&gt;.&lt;/span&gt;DataFrame(data)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我们想知道「每个城市一共卖了多少钱」。&lt;/p&gt;</description></item><item><title>Pandas 编程练习：5 道动手题学会聚合分组（groupby、agg、pivot_table、crosstab） | Pandas 数据分析实战</title><link>https://machinelearningwithme.com/course/pandas/chapter04/coding-exercises/</link><pubDate>Sat, 24 Oct 2026 22:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/pandas/chapter04/coding-exercises/</guid><description>&lt;h1 id="第-42-节-编程练习"&gt;第 4.2 节 编程练习&lt;a class="anchor" href="#%e7%ac%ac-42-%e8%8a%82-%e7%bc%96%e7%a8%8b%e7%bb%83%e4%b9%a0"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;预计学习时长：&lt;/strong&gt; 45 分钟&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;练习方式：&lt;/strong&gt; 新建一个 Jupyter Notebook，抄好准备代码，然后&lt;strong&gt;每题独立完成&lt;/strong&gt;。做完记得 &lt;code&gt;print()&lt;/code&gt; 出结果，和答案对一下。&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="准备先把数据建好"&gt;准备：先把数据建好&lt;a class="anchor" href="#%e5%87%86%e5%a4%87%e5%85%88%e6%8a%8a%e6%95%b0%e6%8d%ae%e5%bb%ba%e5%a5%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pandas&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data &lt;span style="color:#666"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;订单号&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;1001&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1002&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1003&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1004&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1005&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1006&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1007&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1008&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;下单日期&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-05&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-08&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-12&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-03&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-15&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-02&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-20&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-04-08&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;深圳&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;商品&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;电脑&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;键盘&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;显示器&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;销量&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;单价&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;金额&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1797.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1495.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2396.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;客户评分&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;4.5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3.9&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.6&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;df &lt;span style="color:#666"&gt;=&lt;/span&gt; pd&lt;span style="color:#666"&gt;.&lt;/span&gt;DataFrame(data)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="练习-1按照指定类别对数据进行分组"&gt;练习 1：按照指定类别对数据进行分组&lt;a class="anchor" href="#%e7%bb%83%e4%b9%a0-1%e6%8c%89%e7%85%a7%e6%8c%87%e5%ae%9a%e7%b1%bb%e5%88%ab%e5%af%b9%e6%95%b0%e6%8d%ae%e8%bf%9b%e8%a1%8c%e5%88%86%e7%bb%84"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;题目：&lt;/strong&gt; 完成下面 4 个步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;按「城市」分组，统计每个城市有几条记录（用 &lt;code&gt;size()&lt;/code&gt;）；&lt;/li&gt;
&lt;li&gt;按「商品」分组，统计每个商品有几条记录；&lt;/li&gt;
&lt;li&gt;按「城市」分组但&lt;strong&gt;保持原始出现顺序&lt;/strong&gt;（加 &lt;code&gt;sort=False&lt;/code&gt;），打印每个城市的记录数；&lt;/li&gt;
&lt;li&gt;打印第 1 步结果的 &lt;code&gt;index.name&lt;/code&gt;，确认分组键变成了索引。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;思考题：&lt;/strong&gt; 第 1 题和第 2 题结果的&lt;strong&gt;行顺序&lt;/strong&gt;一样吗？为什么？&lt;/p&gt;
&lt;details class="example-disclosure" style="margin-top: 1rem;"&gt;
&lt;summary style="cursor:pointer;font-weight:600;"&gt;点击查看参考答案&lt;/summary&gt;
&lt;div style="margin-top: 1rem;"&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# 1. 按城市分组数行数&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(df&lt;span style="color:#666"&gt;.&lt;/span&gt;groupby(&lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;)&lt;span style="color:#666"&gt;.&lt;/span&gt;size())&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;城市
上海 2
北京 3
广州 2
深圳 1
dtype: int64&lt;/code&gt;&lt;/pre&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# 2. 按商品分组&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(df&lt;span style="color:#666"&gt;.&lt;/span&gt;groupby(&lt;span style="color:#4070a0"&gt;&amp;#34;商品&amp;#34;&lt;/span&gt;)&lt;span style="color:#666"&gt;.&lt;/span&gt;size())&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;商品
手机 3
耳机 2
电脑 1
键盘 1
显示器 1
dtype: int64&lt;/code&gt;&lt;/pre&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# 3. 不排序，按原始出现顺序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(df&lt;span style="color:#666"&gt;.&lt;/span&gt;groupby(&lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;, sort&lt;span style="color:#666"&gt;=&lt;/span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;False&lt;/span&gt;)&lt;span style="color:#666"&gt;.&lt;/span&gt;size())&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;城市
北京 3
上海 2
广州 2
深圳 1
dtype: int64&lt;/code&gt;&lt;/pre&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# 4. 分组键变成了索引&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(df&lt;span style="color:#666"&gt;.&lt;/span&gt;groupby(&lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;)&lt;span style="color:#666"&gt;.&lt;/span&gt;size()&lt;span style="color:#666"&gt;.&lt;/span&gt;index&lt;span style="color:#666"&gt;.&lt;/span&gt;name) &lt;span style="color:#60a0b0;font-style:italic"&gt;# 城市&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;要点：&lt;/strong&gt; 第 1 题和第 2 题顺序不一样，因为 &lt;code&gt;groupby()&lt;/code&gt; 默认按分组键&lt;strong&gt;排序&lt;/strong&gt;（按中文的 Unicode 码点排，「上」在「北」前面）。
第 3 题加 &lt;code&gt;sort=False&lt;/code&gt; 后就按数据里第一次出现的顺序排了。&lt;/p&gt;</description></item><item><title>Pandas 常见问题答疑：10 个聚合分组必踩的坑（groupby、count/size、agg/transform、透视表） | Pandas 数据分析实战</title><link>https://machinelearningwithme.com/course/pandas/chapter04/faq/</link><pubDate>Sat, 24 Oct 2026 22:30:00 +0800</pubDate><guid>https://machinelearningwithme.com/course/pandas/chapter04/faq/</guid><description>&lt;h1 id="第-43-节-常见问题"&gt;第 4.3 节 常见问题&lt;a class="anchor" href="#%e7%ac%ac-43-%e8%8a%82-%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;这一节收集了初学者在「做汇总」环节最常卡的 10 个问题。每个问题都给出&lt;strong&gt;直接答案&lt;/strong&gt;，能跑代码的都附上完整示例。&lt;/p&gt;
&lt;blockquote class='book-hint tip'&gt;
&lt;p&gt;&lt;strong&gt;怎么用这一节&lt;/strong&gt;
不用通读。做报表时遇到问题用 Ctrl+F 搜关键词，直接跳到对应那条。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;准备一下数据，下面每题都会用到：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pandas&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;numpy&lt;/span&gt; &lt;span style="color:#007020;font-weight:bold"&gt;as&lt;/span&gt; &lt;span style="color:#0e84b5;font-weight:bold"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data &lt;span style="color:#666"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;订单号&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;1001&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1002&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1003&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1004&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1005&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1006&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1007&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1008&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;下单日期&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-05&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-08&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-01-12&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-03&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;2024-02-15&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-02&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-03-20&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;2024-04-08&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;上海&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;北京&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;深圳&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;广州&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;商品&amp;#34;&lt;/span&gt;: [&lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;电脑&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;键盘&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;显示器&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;耳机&amp;#34;&lt;/span&gt;, &lt;span style="color:#4070a0"&gt;&amp;#34;手机&amp;#34;&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;销量&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;单价&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;599.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3999.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;金额&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7999.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1797.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1495.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;1299.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;2396.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;7998.0&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#4070a0"&gt;&amp;#34;客户评分&amp;#34;&lt;/span&gt;: [&lt;span style="color:#40a070"&gt;4.5&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.0&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.8&lt;/span&gt;, &lt;span style="color:#40a070"&gt;3.9&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.2&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.6&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.1&lt;/span&gt;, &lt;span style="color:#40a070"&gt;4.9&lt;/span&gt;],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;df &lt;span style="color:#666"&gt;=&lt;/span&gt; pd&lt;span style="color:#666"&gt;.&lt;/span&gt;DataFrame(data)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="q1groupby-的基本工作原理是什么"&gt;Q1：&lt;code&gt;groupby()&lt;/code&gt; 的基本工作原理是什么？&lt;a class="anchor" href="#q1groupby-%e7%9a%84%e5%9f%ba%e6%9c%ac%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;答：&lt;/strong&gt; 三步：&lt;strong&gt;拆 → 算 → 拼&lt;/strong&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;result &lt;span style="color:#666"&gt;=&lt;/span&gt; df&lt;span style="color:#666"&gt;.&lt;/span&gt;groupby(&lt;span style="color:#4070a0"&gt;&amp;#34;城市&amp;#34;&lt;/span&gt;)[&lt;span style="color:#4070a0"&gt;&amp;#34;金额&amp;#34;&lt;/span&gt;]&lt;span style="color:#666"&gt;.&lt;/span&gt;sum()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;拆&lt;/strong&gt;——按「城市」把 8 行拆成 4 组（北京 3 行、上海 2 行、广州 2 行、深圳 1 行）；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;算&lt;/strong&gt;——每一组单独把「金额」加起来；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;拼&lt;/strong&gt;——把 4 个和拼成一张表。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;print&lt;/span&gt;(result)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;城市
上海 9494.0
北京 11094.0
广州 15996.0
深圳 2396.0
Name: 金额, dtype: float64&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;结果有两个特点，记住了就不会出错：&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>