[英]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.