我正在嘗試對數據框執行滾動計數。我遇到的問題是指定條件,因爲它是一個字符串,而不是一個整數。下面的數據框是一個片段,還有一個字典片段。如何計算大熊貓分類變量的滾動計數
GameID Event
0 100 NaN
1 100 NaN
2 100 Ben
3 100 NaN
4 100 Steve
5 100 Ben
6 100 NaN
7 100 Steve
8 100 NaN
9 100 NaN
10 101 NaN
11 101 NaN
12 101 Joe
13 101 NaN
14 101 Will
15 101 Joe
16 101 NaN
17 101 Will
18 101 NaN
19 101 NaN
gamedic = {'100':['Ben','Steve'], '101':['Joe','Will']}
最終,我希望數據框看起來像下面這樣。我爲這個例子命名了Ben和Steve的專欄,但實際上他們將是First和Second,對應他們在字典中的位置。
GameID Event Ben Steve
0 100 NaN 0 0
1 100 NaN 0 0
2 100 Ben 0 0
3 100 NaN 1 0
4 100 Steve 1 0
5 100 Ben 1 1
6 100 NaN 2 1
7 100 Steve 2 1
8 100 NaN 2 2
9 100 NaN 2 2
10 101 NaN 0 0
11 101 NaN 0 0
12 101 Joe 0 0
13 101 NaN 1 0
14 101 Will 1 0
15 101 Joe 1 1
16 101 NaN 2 1
17 101 Will 2 1
18 101 NaN 2 2
19 101 NaN 2 2
pd.rolling_count(df.Event, 1000,0).shift(1)
ValueError: could not convert string to float: Steve
我不確定這是一個複雜的問題還是我在熊貓中丟失了明顯的東西。整個字符串概念使我很難繼續前進。
這只是一個遊戲以下...我試圖groupby,但我的主要問題是與字符串。期望的輸出現在在問題 - 謝謝 – itjcms18
WRT:「這是一個複雜的問題,或...缺少明顯的熊貓」。通常情況下,處理有序的派生數據(像這樣)對於熊貓來說是非常複雜的。熊貓使許多事情變得簡單,但其中大多數是無序的操作,如尋找手段和分組。 –