楼主: az9726
591 2

[问答] python中怎么自定义聚合函数 [推广有奖]

  • 4关注
  • 1粉丝

已卖:1份资源

大师

70%

还不是VIP/贵宾

-

威望
0
论坛币
2617 个
通用积分
438.2810
学术水平
5 点
热心指数
6 点
信用等级
5 点
经验
761 点
帖子
402
精华
0
在线时间
27205 小时
注册时间
2004-9-8
最后登录
2025-4-22

楼主
az9726 发表于 2024-1-22 17:17:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
<!-- markdown css tag --><div class="pinggu_markdown">
<div class="pinggu_markdown__html"><p>我有这个样子的数据</p>
<p>| DEVICE_NUMBER(电话号码)| MONTH(月份) | TOTAL_FEE(收入) |</p>
<p>| :–: | :--------: | :--------: |</p>
<p>| a13453543 | 202301 | 100 |</p>
<p>| a13453543| 202302 | 98 |</p>
<p>| a13453543 | 202303 | 97 |</p>
<p>| <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> | <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> | <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> |</p>
<p>| a27546765 | 202301 | 80 |</p>
<p>| a27546765 | 202302 | 100 |</p>
<p>| a27546765 | 202303 | 98 |</p>
<p>用最小二乘法拟合:收入= <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi><mo>∗</mo></mrow><annotation encoding="application/x-tex">a *</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.46528em; vertical-align: 0em;"></span><span class="mord mathit">a</span><span class="mord">∗</span></span></span></span></span>月份<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>+</mo><mi>b</mi></mrow><annotation encoding="application/x-tex">+b</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.77777em; vertical-align: -0.08333em;"></span><span class="mord">+</span><span class="mord mathit">b</span></span></span></span></span>,用电话号码进行循环,使用sklearn中的linear_model.LinearRegression(fit_intercept=True)求<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.43056em; vertical-align: 0em;"></span><span class="mord mathit">a</span></span></span></span></span>的值,<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>4</mn></mrow><annotation encoding="application/x-tex">4</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">4</span></span></span></span></span>万个电话号码,大概要执行<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>10</mn></mrow><annotation encoding="application/x-tex">10</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">1</span><span class="mord">0</span></span></span></span></span>分钟左右,效率很低。</p>
<p>想用pandas.Datafr ame中的groupby加上聚合函数进行计算(在R中也是最初用循环,后来用改group_by和summarize</p>
<pre class=" language-r"><code class="prism  language-r">
t<span class="token percent-operator operator">%&gt;%</span>group_by<span class="token punctuation">(</span>DEVICE_NUMBER<span class="token punctuation">)</span><span class="token percent-operator operator">%&gt;%</span>summarize<span class="token punctuation">(</span>TOTAL_FEE_K<span class="token operator">=</span>lm<span class="token punctuation">(</span>formula<span class="token operator">=</span>TOTAL_FEE<span class="token operator">~</span>MONTH<span class="token punctuation">)</span><span class="token operator">$</span>coefficients<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

</code></pre>
<p>效率提升很多 ),只是不知道这个聚合函数该怎么写。</p>
<p>迫切希望大家指导。</p>
</div>
</div>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 自定义 coefficients coefficient regression

沙发
az9726 发表于 2024-1-22 17:28:56
<!-- markdown css tag --><div class="pinggu_markdown">
<div class="pinggu_markdown__html"><p>我有这个样子的数据</p>
<p>| DEVICE_NUMBER(电话号码)| MONTH(月份) | TOTAL_FEE(收入) |</p>
<p>| :–: | :--------: | :--------: |</p>
<p>| a13453543 | 202301 | 100 |</p>
<p>| a13453543| 202302 | 98 |</p>
<p>| a13453543 | 202303 | 97 |</p>
<p>| <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> | <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> | <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>⋯</mo></mrow><annotation encoding="application/x-tex">\cdots</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.31em; vertical-align: 0em;"></span><span class="minner">⋯</span></span></span></span></span> |</p>
<p>| a27546765 | 202301 | 80 |</p>
<p>| a27546765 | 202302 | 100 |</p>
<p>| a27546765 | 202303 | 98 |</p>
<p>用最小二乘法拟合:收入= <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi><mo>∗</mo></mrow><annotation encoding="application/x-tex">a *</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.46528em; vertical-align: 0em;"></span><span class="mord mathit">a</span><span class="mord">∗</span></span></span></span></span>月份<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>+</mo><mi>b</mi></mrow><annotation encoding="application/x-tex">+b</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.77777em; vertical-align: -0.08333em;"></span><span class="mord">+</span><span class="mord mathit">b</span></span></span></span></span>,用电话号码进行循环,使用sklearn中的linear_model.LinearRegression(fit_intercept=True)求<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.43056em; vertical-align: 0em;"></span><span class="mord mathit">a</span></span></span></span></span>的值,<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>4</mn></mrow><annotation encoding="application/x-tex">4</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">4</span></span></span></span></span>万个电话号码,大概要执行<span class="katex--inline"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>10</mn></mrow><annotation encoding="application/x-tex">10</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.64444em; vertical-align: 0em;"></span><span class="mord">1</span><span class="mord">0</span></span></span></span></span>分钟左右,效率很低。</p>
<p>想用pandas.Datafr ame中的groupby加上聚合函数进行计算(在R中也是最初用循环,后来用改group_by和summarize</p>
<pre class=" language-r"><code class="prism  language-r">
t<span class="token percent-operator operator">%&gt;%</span>group_by<span class="token punctuation">(</span>DEVICE_NUMBER<span class="token punctuation">)</span><span class="token percent-operator operator">%&gt;%</span>summarize<span class="token punctuation">(</span>TOTAL_FEE_K<span class="token operator">=</span>lm<span class="token punctuation">(</span>formula<span class="token operator">=</span>TOTAL_FEE<span class="token operator">~</span>MONTH<span class="token punctuation">)</span><span class="token operator">$</span>coefficients<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

</code></pre>
<p>效率提升很多 ),只是不知道这个聚合函数该怎么写。</p>
<p>迫切希望大家指导。</p>
</div>
</div>

藤椅
az9726 发表于 2024-1-22 17:29:41
markdown发帖第一次用,真的不会了,怎么删除呀

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-13 13:58