如何按值索引,分组依据
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
我正在尝试分析不同诊断的糖尿病患者与健康人的高血压发病率。 我得到的输出是这样的:
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