【发布时间】:2021-04-14 15:24:43
【问题描述】:
你好!我有如下数据框:
df = pd.DataFrame({"ID": ["1", "2", "1", "3", "2", "2"],
"status" : ["active", "active", np.nan, "notactive", "other", "other"]})
我需要计算新的 DataFrame 女巫列:
- New1 = 每个 ID 状态为“活动”的协议数
- New2 = 每个 ID 缺少状态 (np.nan) 的协议数
- New3 = 每个 ID 状态为“未激活”或“其他”的协议数量 我需要的结果应该如下所示,但交叉表不起作用,因为 New3 列包含“nonactiv”和“other”状态:
【问题讨论】:
-
你试过一些代码吗?告诉我们您是否尝试过,以及您坚持哪些事情......这不仅仅是“做我的家庭作业”。
-
我试过 pd.crosstab(df['ID'], df['status']) 但它不起作用,因为它没有在 New3 “非活动”和“其他”中结合,它只每个状态分别计算
-
那么不应该重述您的问题来询问如何将除
np.nan和'active'之外的任何内容映射到另一个值? -
Asish M 所以你认为将 NaN、nonactive 和其他替换为 2 statuset 我计算它?但是你能推荐一些代码吗?
-
我投票结束这个问题,因为包含图形而不是可搜索文本中的问题。
标签: python pandas dataframe sum aggregation