首页 > 解决方案 > 根据特定条件通过 cumsum() (或任何其他此类函数)评估 df['column'] 的总和。熊猫

问题描述

我的数据与“板球”有关,这是一种在印度很受欢迎的运动。每局最多有 20 个回合,每个回合大约有 6 个球(可能会有所不同)。

数据框有这些列,

season  match_id    inning  batting_team    bowling_team  total_runs_per_ball   sum_total_runs  sum_total_wickets   over/ball   runs_last_5     wickets_last_5

sum_total_runs是 的 cumsum() 结果total_runs_per_ball

sum_total_wickets也是另一个查询的 cumsum() 结果。

runs_last_5并且wickets_last_5 是新创建的列,预设值为 0。我想通过确定它们在最后 5 轮中的总和来更新这两个。

首先,我的数据看起来像这样(没有显示一些不太重要的列),

有很多列要显示,所以我用图片代替。

df.head在此处输入图像描述

df.tail在此处输入图像描述

我不知道如何通过代码确定最后 5 次。我没有显示 5.1 之前的行(over/ball < 5.1)。但是将从那里获取数据,直到结束/球 9.6,对于 10.1,最后 5 次结束将一直到 5.1 runs_last_5wickets_last_5我的意思是,从逻辑上和口头上我知道如果 current over 是 8.1,那么runs_last_5将是sum_total_runs 从 3.1 到 8.1 over/ball 或者如果当前 over/ball 是 11.3 那么runs_last_5将是sum_total_runs从 6.3over/ball到 9.3 over/ball。和都将从runs_last_5和中获取此数据。wickets_last_5sum_total_runssum_total_wickets

runs_last_5wickets_last_5 应该看起来像,

在[]: df.head(10)

出去[]:

    sum_total_runs sum_total_wickets  runs_last_5   wickets_last_5
32    61            0                   59           0
33    61            1                   59           1
34    61            1                   59           1
35    61            1                   59           1
36    61            1                   58           1
37    61            1                   58           1
38    62            1                   55           1
39    63            1                   52           1
40    64            1                   47           1
41    66            1                   45           1

在[]: df.tail(10)

出去[]:

        sum_total_runs  sum_total_wickets   runs_last_5   wickets_last_5
75879   102             9                   31            4
75880   106             9                   35            4
75881   106             9                   35            4
75882   106             9                   31            4
75883   106             9                   30            4
75884   106             9                   29            4
75885   107             9                   29            4
75886   107             9                   28            4
75887   107             9                   24            4
75888   107             10                  23            5

标签: pythonpandascumsum

解决方案


推荐阅读