使用 Python 在数据框中添加平均值列
Add column of average in data frame using Python
我想创建一个新的数据框,其中包含性别、children 的金额、保险价格以及个人是否吸烟。下面是我的数据框的示例。
Sex Children Insurance Smoker
Male 3 392.48 Yes
Male 6 782.68 Yes
Male 6 438.21 No
Female 1 125.98 Yes
Female 1 58.32 No
Female 4 585.12 Yes
Female 4 356.12 No
到目前为止,我使用代码得到了这个
df = pd.DataFrame(insurance).groupby(["sex", "children", "smoker"]).size()
#which outputs
sex children smoker
female 1 yes 1
1 no 1
4 yes 1
4 no 1
male 3 yes 2
6 yes 1
6 no 1
我如何根据他们有多少 children 以及他们是否吸烟,为每个性别添加一列平均保险?当然,我尝试添加 mean("insurance") 但出现错误。非常感谢您的帮助!
df.groupby(["Sex", "Children", "Smoker"],as_index=False)["Insurance"].mean()
#output
Sex Children Smoker Insurance
0 Female 1 No 58.32
1 Female 1 Yes 125.98
2 Female 4 No 356.12
3 Female 4 Yes 585.12
4 Male 3 Yes 392.48
5 Male 6 No 438.21
6 Male 6 Yes 782.68
这是你想要的吗?
Sex Children Smoker size mean
0 Female 1 No 1 58.32
1 Female 1 Yes 1 125.98
2 Female 4 No 1 356.12
3 Female 4 Yes 1 585.12
4 Male 3 Yes 1 392.48
5 Male 6 No 1 438.21
6 Male 6 Yes 1 782.68
我想创建一个新的数据框,其中包含性别、children 的金额、保险价格以及个人是否吸烟。下面是我的数据框的示例。
Sex Children Insurance Smoker
Male 3 392.48 Yes
Male 6 782.68 Yes
Male 6 438.21 No
Female 1 125.98 Yes
Female 1 58.32 No
Female 4 585.12 Yes
Female 4 356.12 No
到目前为止,我使用代码得到了这个
df = pd.DataFrame(insurance).groupby(["sex", "children", "smoker"]).size()
#which outputs
sex children smoker
female 1 yes 1
1 no 1
4 yes 1
4 no 1
male 3 yes 2
6 yes 1
6 no 1
我如何根据他们有多少 children 以及他们是否吸烟,为每个性别添加一列平均保险?当然,我尝试添加 mean("insurance") 但出现错误。非常感谢您的帮助!
df.groupby(["Sex", "Children", "Smoker"],as_index=False)["Insurance"].mean()
#output
Sex Children Smoker Insurance
0 Female 1 No 58.32
1 Female 1 Yes 125.98
2 Female 4 No 356.12
3 Female 4 Yes 585.12
4 Male 3 Yes 392.48
5 Male 6 No 438.21
6 Male 6 Yes 782.68
这是你想要的吗?
Sex Children Smoker size mean
0 Female 1 No 1 58.32
1 Female 1 Yes 1 125.98
2 Female 4 No 1 356.12
3 Female 4 Yes 1 585.12
4 Male 3 Yes 1 392.48
5 Male 6 No 1 438.21
6 Male 6 Yes 1 782.68