我正在寻找一种方法来获得每个年龄段的平均婚姻状况:
例如,对于34岁的人来说,中间的军事地位是单身, 对于35岁的人来说也是单身,以此类推。你知道吗
我将数据帧分组
df_edad_estado_civil.groupby(['Estado_Civil', 'Edad'], as_index=False).mean()
但会出现如下错误:
DataError: No numeric types to aggregate
基本上,这是我的数据帧的一部分:
Edad Estado_Civil
0 38 Soltero
1 26 Casado
2 26 Soltero
4 38 Soltero
5 24 Soltero
6 28 Soltero
7 30 Casado
8 32 Soltero
9 19 Soltero
10 28 Soltero
11 45 Casado
12 27 Soltero
13 41 Casado
14 45 Casado
15 38 Soltero
我需要得到每个年龄段的平均状态列表,如下所示:
years_old status_mediam
34 single
. .
36 single
37 married
38 married ....
45 divorced and so on.
我认为这个数据是线性的,因为人们会随着年龄的增长而结婚。所以,它可以用线性方程来表示。 基本上可以用机器学习的线性回归模型来求解。 我想你在做某种机器学习模型。 不管怎样,这是一个样本代码,我计算了每个婚姻状况的平均值。你知道吗
结果是:
将
Estado_Civil
列转换为数字类型,其中0表示已婚,1表示单身,并沿此线进行转换`df.Estado\ U土木工程= df.Estado\ U土木工程.apply(λx:1*(x=='单个'))。然后执行groupby。你知道吗在应用
.mean()
之前选择一个特定的列也很有用,例如df.groupby(['Estado_Civil', 'Edad'], as_index=False)['Estado_Civil'].mean()
似乎您要查找的是统计
mode
,这是最常出现的值:See this answer了解更多详细信息。你知道吗
相关问题 更多 >
编程相关推荐