簡體   English   中英

Python Pandas - 計算到目前為止在每一行的列中找到的字符串

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM