【问题标题】:condition based cumulative count within a groupbygroupby 内基于条件的累积计数
【发布时间】:2020-11-23 18:23:39
【问题描述】:

我有一个数据集,假设如下 df.head(10)

Acctid       Disposition
1             Unsuccessful
2             Unsuccessful
3             successful
1             Unsuccessful
2             Unsuccessful
2             Successful
1             Successful

我想要的带有acctid的groupby在pandas中的结果如下

Acctid    Attempts before Successful
1           2
2           2
3           1

我只是想要在数据框的 groupby 内成功尝试之前的不成功尝试次数。如果 acctid 成功首先出现,则市场为 1。

【问题讨论】:

  • 你能发布一些示例数据吗?只需发布前五行,然后解释您想要的方式?
  • Acctid 成功后是否还有其他条目?例如,Acctid 3 已经成功后是否会出现 Unsuccessful 条目?
  • 您好@Swarnendu Bhattacharya,如果您也提供了一个关于您尝试过的代码的最小可重现示例,这可能会有所帮助。
  • 1 换 3 怎么样?你是说在成功之前尝试。这不应该是 0 吗?
  • 一个acctid成功后仍然可以有不成功的尝试

标签: python database pandas dataframe pandas-groupby


【解决方案1】:

如果 Acctid 成功后没有更多条目,则以下代码应为您提供所需的内容。

df['Counter'] = np.where(df['Disposition'] == 'Unsuccessful',1,0)
df.groupby('Acctid')['Counter'].sum()

【讨论】:

  • 成功后一个 acctid 仍然可以有 unsuccessfulattempts-True
  • 我不想要不成功尝试的计数器,我想要在第一次成功尝试之前为帐户 ID 显示不成功尝试的计数器,无论在第一次成功尝试之后它有多少次不成功尝试
猜你喜欢
  • 2020-08-04
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 2021-07-20
  • 1970-01-01
相关资源
最近更新 更多