我有一个数据框,其中包含三个列,如下所示。数据框中大约有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()

许可以下: CC-BY-SA归因
scroll top