python - DataError:没有要聚合的数字类型
问题描述
我将按性别描述男性和女性群体,以可视化每个值的流失率(1-保留率)如何。
我的输出
df_data.groupby(by='gender')['Churn'].mean()
error
---------------------------------------------------------------------------
DataError Traceback (most recent call last)
<ipython-input-46-75992efc6958> in <module>()
----> 1 df_data.groupby(by='gender')['Churn'].mean()
1 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/groupby/groupby.py in mean(self, numeric_only)
1396 "mean",
1397 alt=lambda x, axis: Series(x).mean(numeric_only=numeric_only),
-> 1398 numeric_only=numeric_only,
1399 )
1400
/usr/local/lib/python3.7/dist-packages/pandas/core/groupby/groupby.py in _cython_agg_general(self, how, alt, numeric_only, min_count)
1051
1052 if len(output) == 0:
-> 1053 raise DataError("No numeric types to aggregate")
1054
1055 return self._wrap_aggregated_output(output, index=self.grouper.result_index)
DataError: No numeric types to aggregate
解决方案
您的所有列,甚至那些看起来像数字的列,都是字符串。.astype(int)
您必须在应用之前将“数字”列转换为数字列.mean()
。例如:
df.tenure = df.tenure.astype(int)
推荐阅读
- matlab - 为什么对于这个看似有效的变换矩阵,我会收到警告 MATLAB:hg:DiceyTransformMatrix?
- python-3.x - 当我用 utf-8 读取文件时,.find() 不起作用
- php - 将数据插入特定表,但在 Lumen 5.8 的另一个表中出现错误
- windows - Windows Server 2012 上 API 和 DB 的奇怪缓存问题
- python - 使用 Python 的 pandas 循环中的下 n 个值
- php - 在wordpress自定义帖子中按分类获取页面列表
- tomcat - Tomcat 8.5.42 - 向服务器发布请求给出错误 403
- python-3.x - 从文件python 3读取时返回
- bash - 如何从 AIX 上的文件中重写某些行?
- python - 无法从子文件夹导入虚拟环境中的本地模块