如何按值索引,分组依据

How to index by value, group by

我正在尝试分析不同诊断的糖尿病患者与健康人的高血压发病率。 我得到的输出是这样的:

0     0.371132
8     0.752674
64    0.629022

我需要的输出是这样的

Diabetes_012    average HBP occurence
0               0.371132
2               0.752674
1               0.629022

其中输出指标为糖尿病类型,值为糖尿病的平均发生率。

这是完整的代码

import csv
import pandas as pd
import seaborn as sns
df = pd.read_csv ('diabetes_012_health_indicators_BRFSS2015.csv') 
df2=df.copy
pd.set_option('display.max_columns', None)
df
import matplotlib.pyplot as plt
grouped=df.groupby(['Diabetes_012'])['HighBP'].transform('mean').drop_duplicates()
print(grouped)

这是数据集的 link:https://www.kaggle.com/datasets/alexteboul/diabetes-health-indicators-dataset

不要使用 .transform,只需抓住要对其执行平均值的列(或列):

In [3]: df.groupby("Diabetes_012")[["HighBP"]].mean()
Out[3]:
                HighBP
Diabetes_012
0.0           0.371132
1.0           0.629022
2.0           0.752674

多列示例:

In [4]: df.groupby("Diabetes_012")[["HighBP", "BMI"]].mean()
Out[4]:
                HighBP        BMI
Diabetes_012
0.0           0.371132  27.742521
1.0           0.629022  30.724466
2.0           0.752674  31.944011