我正在尝试实现一个有点棘手的Pandas列中的累积计数,其中每个日期和ID号只添加一次计数
下面的视觉效果将有助于解释,我当前的数据集如下所示:
ID Date Mention_of_Yes
XDA 11/19/2019 0
XDA 12/19/2019 1
XDA 12/19/2019 1
XDA 1/19/2020 1
XDA 2/19/2020 0
XDA 3/19/2020 1
JJL 11/2/2019 1
JJL 11/2/2019 1
JJL 12/2/20019 0
JJL 1/20/2020 1
我正试图添加一个列,以这种特定的方式计算,在特定的日期,每次“提及是”仅一次:
ID Date Mention_of_Yes *Correct CumCount
XDA 11/19/2019 0 0
XDA 12/19/2019 1 1
XDA 12/19/2019 1 1** Only Counts Once Per Date (12/19/2019 in this case)
XDA 1/19/2020 1 2
XDA 2/19/2020 0 2
XDA 3/19/2020 1 3
JJL 19/2/2019 0 0
JJL 10/2/2019 0 0
JJL 11/2/2019 1 1
JJL 11/2/2019 1 1** Only Counts Once Per Date (11/2/2019 in this case)
JJL 12/2/20019 0 1
JJL 1/20/2020 1 2
我尝试了groupby和cumcount的不同迭代,但似乎无法正确配置,就像我在下面使用的代码一样:
df['Correct_CumCount'] = df.groupby[('ID','Mention_of_Yes')].cumcount()+1
任何帮助都将不胜感激
您可以在
drop_duplicates
之后使用groupby
和cumsum
(而不是cumcount
),然后使用ffill
来执行此操作,如:相关问题 更多 >
编程相关推荐