题
我有一个数据框,其中包含三个列,如下所示。数据框中大约有10,000个条目,也有重复的内容。
Hospital_ID District_ID Employee
Hospital 1 District 19 5
Hospital 1 District 19 10
Hospital 1 District 19 6
Hospital 2 District 10 50
Hospital 2 District 10 51
现在,我想删除重复项,但我想以它们的平均值替换原始数据框中的值,以使其看起来像这样:
Hospital 1 District 19 7.0000
Hospital 2 District 10 50.5000
谢谢
解决方案
作为 Emre 已经说过你可以使用 通过...分组 功能。之后,您应该申请 reset_index 将多索引移至列:
import pandas as pd
df = pd.DataFrame( [ ['Hospital 1', 'District 19', 5],
['Hospital 1', 'District 19', 10],
['Hospital 1', 'District 19', 6],
['Hospital 2', 'District 10', 50],
['Hospital 2', 'District 10', 51]], columns = ['Hospital_ID', 'District_ID', 'Employee'] )
df = df.groupby( ['Hospital_ID', 'District_ID'] ).mean()
给你的
Hospital_ID District_ID Employee
0 Hospital 1 District 19 7.0
1 Hospital 2 District 10 50.5
其他提示
你想做的就是叫做 聚合;重复数据删除或重复删除是其他的。我认为代码不言自明:
df.groupby(['Hospital_ID', 'District_ID']).mean()