python - 求和转化率,然后按年龄分组
问题描述
我需要按年龄对转化率进行汇总和分组。下面的代码来自 Yoon Hyup Hwang 的《Hands-on Data Science for Marketing》一书。
这本书提供了以下代码,但它不起作用:
conversions_by_age = df.groupby(by='age')
['conversion'].sum() / df.groupby(by='age')
['conversion'].count() * 100
预期的输出将显示:
年龄栏:17 转化栏:40.0000 年龄栏:18 转化栏:42.857143
等等。
这是我从书中运行代码时收到的错误(第 2 行是每个 python 的问题):
1 conversions_by_age = df.groupby(by='age')
2 ['conversion'].sum() / df.groupby(by='age')
3 ['conversion'].count() * 100
AttributeError:“列表”对象没有属性“总和”
const.price.idx cons.conf.idx euribor3m nr.employed y conversion
93.994 -36.4 4.857 5191.0 no 0
93.994 -36.4 4.857 5191.0 no 0
93.994 -36.4 4.857 5191.0 no 0
93.994 -36.4 4.857 5191.0 no 0
93.994 -36.4 4.857 5191.0 no 0
我会很感激任何帮助!
谢谢!
解决方案
错误是不言自明的"AttributeError: 'list' object has no attribute 'sum'
在这一行
['conversion'].sum()
['conversion']
是列表,您正在访问sum
的方法list
和 python 列表没有任何方法名称sum
。
我认为你应该这样做
df['conversion'].sum() instead of ['conversion'].sum()
因为df
是一个DataFrame
暴露sum
方法。
推荐阅读
- python - 如何最小化仅包含对键的反向引用的有序字典中的距离?
- c - CS50 Pset1 现金代码无法正常工作
- angular - Angular + Spring boot Jwt 刷新令牌功能
- java - 试图找到一个返回两个括号之间的字符串的递归方法
- java - 将正确的类型值解析为 Java 中的列表
- javascript - 无法读取未定义的属性“原型”,表达
- java - 通过反射调用 onReportLocation
- jboss - 将 prometheus jmx_exporter 与 jboss 应用程序集成
- html - CSS(SASS)元素无法居中
- swift - 在 Xcode Playground 中获取资源的 URL 在 Xcode 版本之间不一致