我有一个关于某项运动比赛的数据框架。我有6支队伍:A、B、C、D、E和F。比赛有38周。在每个弱队中,我们都有一支主场球队和一支客队。我知道团队比赛的次数不等于38周,但这只是为了说明问题。我的df是这样的:
df
ownerh_team visit_team some_var weak some_var2 score
A B 1 1 5 3
C D 2 1 3 3
E F 1 1 1 1
A D 4 38 2 0
B D 2 38 3 0
F E 1 38 1 1
得分变量与业主主队(业主球队)有关。如果主队获胜,那么比分是3分。如果访问团队获胜,则得分为0。如果比赛结果是平局,比分是1分。你知道吗
我想构造一个函数new\u var\u func来创建一个新的列来关联过去的weaks。换言之,对于每一排df(或者相当于每一个主场球队)和它各自的一周,我想知道在过去的5周里主场球队得了3分的次数。你知道吗
我想要一个具有此输入结构的函数:
def new_var_func(data = df, column = 'name_var' , n_past_weeks = 1 , score_value = 3):
corpus
注意,这个函数的输出是相同的df,但是有一个新列名为'name\u var'。参数n\u pass\u weeks=y是要调查的过去周数。分数=x意味着我想知道在过去的y周里主队有多少次得分=x。你知道吗
也许创建新的方法变量的解决方案不一定要使用函数。我接受其他解决方案,但如果您能使用函数,我将不胜感激。你知道吗
给定以下数据帧:
我使用pandas.Dataframe.query过滤数据帧,使用pandas.Dataframe.apply函数有效地迭代数据帧。请尝试以下代码:
并给出:
注意:我认为您还需要对当前一周的结果进行计数,如果您想从计数中排除运行的一周,请将
df.week <= row.week
替换为df.week < row.week
,或者如果我误解了您请求的某些部分,请修改查询相关问题 更多 >
编程相关推荐