2017-04-25 6 views
0

私はテニスのデータセットを使用しており、高度な情報性のために変換したいと考えています。私は問題への解決策を探していましたが、まだ何も見つかりませんでした。テニスのデータフレームに平均統計値の列を作成する

各行の各プレーヤーの前回の試合の平均統計値を示す列を作成したいとします。あなたが理解しているように、各行には、以前のゲームの平均統計インデックスを持つ、プレーヤー1のためのいくつかの値とプレーヤー2のためのいくつかの値があるはずです。また、前回の試合で1位か2位のときに値を取る必要があります。ここで

は、データセットの一部です:

Player 1  Player 2  P1_Prct1stIn P2_Prct1stIn P1_Prct1stWon P2_Prct1stWon 
1 Djokovic N. Raonic M.  0.644444  0.576923   0.724138 0.844444 
2 Cilic M.  Wawrinka S. 0.450000  0.610390   0.861111 0.787234 
3 Nishikori K. Murray A.  0.630252  0.530303   0.720000 0.757143 
4 Raonic M.  Thiem D.  0.637931  0.545455   0.864865 0.6666671 
5 Djokovic N. Goffin D.  0.614035  0.468085   0.828571 0.590909 
6 Wawrinka S. Murray A.  0.611940  0.588235   0.658537 0.866667 
7 Nishikori K. Cilic M.  0.635135  0.545455   0.638298 0.809524 
8 Raonic M.  Murray A.  0.632812  0.609589   0.740741 0.617978 
9 Nishikori K. Djokovic N. 0.636364  0.636364   0.514286 0.821429 
10 Murray A. Djokovic N. 0.542373  0.721311   0.843750 0.590909 

Prct1stIn - 第一の割合は

Prct1stWonに仕える - 第1回の割合は、ラリーに仕えるだから私は列が、このデータセットを使用して作られた必要

を受賞このように:

P1_PREV_MEAN_Prct1stIn 
NaN 
NaN 
NaN 
NaN 
0.644444 
0.610390 
0.630252 
0.607427 
0.6326935 
0.57604233 

例えば、プレーヤーの最後のマッチ10の平均値を取る方法。

私はこの問題を決定する際には助けに感謝します。

答えて

0

まず私は、今、私はshiftをされているstackgroupby'Name'applyexpandingmean「は

f = lambda x: x.expanding().mean().shift() 
g = d1.stack(0).groupby('Name')[['Prct1stIn', 'Prct1stWon']] 
d2 = g.apply(f).unstack().swaplevel(0, 1, 1) 
d1.join(d2, rsuffix=' Prior Mean') 
はdのだ便利 pd.MultiIndex

mux = pd.MultiIndex.from_tuples([ 
     ('P1', 'Name'), ('P2', 'Name'), 
     ('P1', 'Prct1stIn'), ('P2', 'Prct1stIn'), 
     ('P1', 'Prct1stWon'), ('P2', 'Prct1stWon') 
    ]) 

d1 = pd.DataFrame(df.values, df.index, mux).sort_index(1) 
print(d1) 

enter image description here


を作成したいです

enter image description here

+0

ありがとうございました!残念ながら、これはデータセット全体を扱うときは機能しません(ここではその一部のみを示しました)。 – Maxim

+0

詳細を表示する予定ですか?または何が間違っていたかを共有する – piRSquared

+0

はい、問題ありません!それを見るリンクは次のとおりです:https://github.com/maanisimov/Tennis-matches-analysis/blob/master/Analysis%20of%20Tennis%20Bets%20Formation%20in%20the%20BM.ipynb。 元の情報を持つサイトへのリンクもあります。 データフレームが監視されるため、ロシア語があなたを混乱させないと思います。しかし、それが問題なら、私は英語版を作ることができます。 – Maxim

関連する問題