私はこれを持っていますdf_players
:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 TableIndex 739 non-null object
1 PlayerID 739 non-null int64
2 GameWeek 739 non-null int64
3 Date 739 non-null object
4 Points 739 non-null int64
5 Price 739 non-null float64
6 BPS 739 non-null int64
7 SelectedBy 739 non-null int64
8 NetTransfersIn 739 non-null int64
9 MinutesPlayed 739 non-null float64
10 CleanSheet 739 non-null float64
11 Saves 739 non-null float64
12 PlayersBasicID 739 non-null int64
13 PlayerCode 739 non-null object
14 FirstName 739 non-null object
15 WebName 739 non-null object
16 Team 739 non-null object
17 Position 739 non-null object
18 CommentName 739 non-null object
そして、私はこの関数をquantile()
(変数 'cut'によって渡された値)とともに使用して、プレーヤーの分布をプロットしています。
def jointplot(X, Y, week=None, title=None,
positions=None, height=6,
xlim=None, ylim=None, cut=0.015,
color=CB91_Blue, levels=30, bw=0.5, top_rows=100000):
if positions == None:
positions = ['GKP','DEF','MID','FWD']
#Check if week is given as a list
if week == None:
week = list(range(max(df_players['GameWeek'])))
if type(week)!=list:
week = [week]
df_played = df_players.loc[(df_players['MinutesPlayed']>=45)
&(df_players['GameWeek'].isin(week))
&(df_players['Position'].isin(positions))].head(top_rows)
if xlim == None:
xlim = (df_played[X].quantile(cut),
df_played[X].quantile(1-cut))
if ylim == None:
ylim = (df_played[Y].quantile(cut),
df_played[Y].quantile(1-cut))
sns.jointplot(X, Y, data=df_played,
kind="kde", xlim=xlim, ylim=ylim,
color=color, n_levels=levels,
height=height, bw=bw);
plt.suptitle(title,fontsize=18);
plt.show()
コール:
jointplot('Price', 'Points', positions=['FWD'],
color=color_list[3], title='Forwards')
このプロット:
どこ:
xlim = (4.5, 11.892999999999995)
ylim = (1.0, 13.0)
私に関する限り、これらのxおよびy制限により、変位値の範囲を使用して、データ(cut),(1-cut)
ポイントの領域にズームインできます。
質問
ここで、次のように、特定のエリア内のプレーヤーのプレーヤー「WebName」を取得したいと思います。
プロット後、上のターゲット領域を選択して範囲を定義できます。大まかに言って、xlimとylimを渡します。
jointplot('Price', 'Points', positions=['FWD'],
xlim=(5.5, 7.0), ylim=(11.5, 13.0),
color=color_list[3], title='Forwards')
上の赤い領域を拡大します。
しかし、どうすればそのエリア内のプレイヤー名を取得できますか?
プロットの境界に基づいて、プレーヤーのデータフレームの一部を選択するだけです。
selected = df_players[
(df_players.Points >= points_lbound)
& (df_players.Points <= points_ubound)
& (df_players.Price >= price_lbound)
& (df_players.Price <= price_ubound)
]
WebNameのリストは次のようになります selected.WebNames
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加