【发布时间】:2017-11-18 23:29:05
【问题描述】:
我有以下 Pandas 数据框:
Name | EventSignupNo | Attended | Points
Smith | 0145 | Y | 20.24
Smith | 0174 | Y | 29.14
Smith | 0239 | N | 0
Adams | 0145 | N | 0
Adams | 0174 | Y | 33.43
Morgan | 0239 | Y | 31.23
Morgan | 0244 | Y | 23.15
我想要计算每人参加和未参加的活动数量,以及每人的积分总和。所以我做了一个groupby:df.groupby([Name, Attended]).agg({"Attended": "count", "Points": "sum"}).rename(columns = {"Attended: "Count"}).reset_index()
这会给我类似的东西:
Name | Attended | Count | Points
Smith | Y | 2 | 49.38
Smith | N | 1 | 0
Adams | Y | 1 | 33.43
Adams | N | 1 | 0
Morgan | Y | 2 | 54.38
但我想要类似的东西:
Name | Attended | Count | Points
Smith | Y | 2 | 49.38
Smith | N | 1 | 0
Adams | Y | 1 | 33.43
Adams | N | 1 | 0
Morgan | Y | 2 | 54.38
Morgan | N | 0 | 0
我尝试使用 pd.MultiIndex 来填补缺失的零计数, 但无济于事。我已经阅读了其他类似的问题,但我无法使用 MultiIndex 处理连续点列。知道怎么做吗?
【问题讨论】:
标签: python pandas pandas-groupby