循环数据帧中定义的行数以返回字符串计数(连胜)

2024-09-27 19:29:50 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的数据框示例,希望创建一个新列“Win_Streak”,该列统计前3行(或用户定义的行数)的赢数。我要寻找的输出如下所示

      Win_Loss   Win_Streak
0        Win         0
1        Loss        1
2        Loss        2
3        Loss        
4        Win         
5        Win         
6        Loss        
7        Win
8        Loss
9        Win

我在下面尝试的代码,输出显示每行115个-不确定这是为什么?也许我应该使用iterrows,但不确定如何实现。感谢您的指导

for i in range(0, len(df), 3):
    df['Win_Streak'] = new_player['Win_Loss'].str.count("Win").sum()

Tags: 数据代码用户in示例dffor定义
1条回答
网友
1楼 · 发布于 2024-09-27 19:29:50

能够通过将Win_Loss列转换为整数,1==Win,0==Loss,然后通过将Win_Streak(当前行之前的3场比赛)列转换为Win_Streak,从而得出解决方案

df['Win_streak'] = df['Win_Loss'].shift(-3).rolling(min_periods=1, window=3).sum()

相关问题 更多 >

    热门问题