我见过不同语言(即 SQL、fortran 或 C++)的解决方案,主要用于循环。
我希望有人可以帮助我使用熊猫来解决这个任务。
如果我有一个看起来像这样的数据框。
date pcp sum_count sumcum
7/13/2013 0.1 3.0 48.7
7/14/2013 48.5
7/15/2013 0.1
7/16/2013
8/1/2013 1.5 1.0 1.5
8/2/2013
8/3/2013
8/4/2013 0.1 2.0 3.6
8/5/2013 3.5
9/22/2013 0.3 3.0 26.3
9/23/2013 14.0
9/24/2013 12.0
9/25/2013
9/26/2013
10/1/2014 0.1 11.0
10/2/2014 96.0 135.5
10/3/2014 2.5
10/4/2014 37.0
10/5/2014 9.5
10/6/2014 26.5
10/7/2014 0.5
10/8/2014 25.5
10/9/2014 2.0
10/10/2014 5.5
10/11/2014 5.5
我希望我能做到以下几点:
第 1 步:通过确定“pcp”列中连续非零的总计数来创建 sum_count 列。
第 2 步:创建 sumcum 列并计算非连续“pcp”的总和。
第 3 步:创建一个如下所示的数据透视表:
year max_sum_count
2013 48.7
2014 135.5
但!!max_sum_count 基于 sum_count = 3 时的条件
我会很感激任何帮助!谢谢你!
更新的问题:
我之前强调过 sum_count 应该只返回最大连续 3 pcps。但是我错误地给出了错误的数据框,我不得不对其进行编辑。对不起。
135.5 的总和来自 96.0 + 2.5 + 37.0。它是 sum_count 11 内的最大连续 3 pcps。
谢谢