[英]Python Count occurrences of a substring in pandas by row appending distinct string as column
[英]Python Pandas - count string found in column so far for every row
我正在对过去的 NHL 赛季进行一些分析和视觉效果,但在我的 DataFrame 中创建一些额外的数据/功能时遇到了困难。
这是数据框的简化版本,其中每一行代表一个游戏。
game_id h_abbr a_abbr
0001 WSH TOR
0002 ANA TOR
0003 TOR MIN
我如何计算到目前为止每支球队打了多少场比赛(包括有问题的比赛),以便新专栏看起来像这样?
game_id h_abbr a_abbr ht_game_no at_game_no
0001 WSH TOR 1 1
0002 ANA TOR 1 2
0003 TOR MIN 3 1
经过大量的搜索和尝试,我只找到了一种方法来计算球队打了多少场主场或客场比赛,但我对比赛总数感兴趣。
df['Nth_away_game'] = df.groupby('a_abbr').cumcount() + 1
想法是通过DataFrame.stack
重塑值,然后使用GroupBy.cumcount
,通过DataFrame.add_suffix
检查列名称,最后DataFrame.join
到原始:
s = df[['h_abbr','a_abbr']].stack()
df = df.join(s.groupby(s).cumcount().add(1).unstack().add_suffix('_no'))
print (df)
game_id h_abbr a_abbr h_abbr_no a_abbr_no
0 1 WSH TOR 1 1
1 2 ANA TOR 1 2
2 3 TOR MIN 3 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.