Python 在多列上使用 groupby 函数进行查询
Python query using groupby function on multiple columns
我有一个数据框 df,其中 df=
Practice Month DDD MDM BNF Patient registered
1 1 4 67 A 1000
1 2 5 56 A 1010
2 1 6 45 B 1050
3 2 5 100 B 1100
我必须编写 python 代码来向我的数据框添加一个新列,即每个实践每月 DDD_per_patient 通过对实践、月份和 BNF 进行分组并将注册的患者除以总 DDD
我的数据框非常大
这有帮助吗:
def DDD_per_patient_per_month(group):
group["DDD_per_patient per month"] = group["Patients Registered"] / group["DDD"]
return group
df.groupby(["Practice", "Month", "BNF"]).apply(DDD_per_patient_per_month)
输出:
Practice Month DDD MDM BNF Patients Registered DDD_per_patient per month
0 1 1 4 67 A 1000 250.0
1 1 2 5 56 A 1010 202.0
2 2 1 6 45 B 1050 175.0
3 3 2 5 100 B 1100 220.0
我有一个数据框 df,其中 df=
Practice Month DDD MDM BNF Patient registered
1 1 4 67 A 1000
1 2 5 56 A 1010
2 1 6 45 B 1050
3 2 5 100 B 1100
我必须编写 python 代码来向我的数据框添加一个新列,即每个实践每月 DDD_per_patient 通过对实践、月份和 BNF 进行分组并将注册的患者除以总 DDD 我的数据框非常大
这有帮助吗:
def DDD_per_patient_per_month(group):
group["DDD_per_patient per month"] = group["Patients Registered"] / group["DDD"]
return group
df.groupby(["Practice", "Month", "BNF"]).apply(DDD_per_patient_per_month)
输出:
Practice Month DDD MDM BNF Patients Registered DDD_per_patient per month
0 1 1 4 67 A 1000 250.0
1 1 2 5 56 A 1010 202.0
2 2 1 6 45 B 1050 175.0
3 3 2 5 100 B 1100 220.0