ラベル Seaborn の投稿を表示しています。 すべての投稿を表示
ラベル Seaborn の投稿を表示しています。 すべての投稿を表示

2025年6月18日水曜日

NBA選手シーズンごとの平均リバウンド

NBA選手のシーズン当たりのリバウンド

シーズン毎の得点に続き、シーズン毎のリバウンドを可視化してみます。

外れ値を省くために、1シーズン40試合以上出場した選手で構成しています。

#! /usr/bin/env python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

sns.set()

fn = "data/player_per_game.csv"
df = pd.read_csv(fn)

df2 = df[df["g"] >= 40] 

desc = df2.groupby("season")["TRB"].describe()
print(desc)

count mean std min 25% 50% 75% max
season
1951 108.0 4.960185 2.849986 1.3 2.900 4.35 6.525 16.4
1952 94.0 5.255319 3.140770 1.0 2.925 4.55 6.950 13.5
1953 102.0 5.138235 3.093143 0.9 3.000 4.25 6.875 14.4
1954 91.0 5.126374 3.164871 0.9 2.800 4.30 6.900 15.3
1955 81.0 5.669136 3.186952 1.2 3.400 4.60 7.600 15.1
1956 80.0 5.626250 3.401479 0.9 3.175 4.45 7.650 16.3
1957 83.0 5.906024 3.658580 1.8 3.400 4.60 8.050 19.6
1958 78.0 6.698718 4.116217 1.7 3.850 5.50 9.550 22.7
1959 85.0 6.207059 3.708510 1.8 3.600 5.30 7.900 23.0
1960 87.0 6.686207 4.410774 1.8 3.800 5.30 8.450 27.0
1961 83.0 6.719277 4.765052 1.2 3.750 5.70 8.200 27.2
1962 100.0 6.430000 4.680488 0.4 3.025 5.80 8.050 25.7
1963 94.0 6.020213 4.181155 0.9 3.000 5.15 7.175 24.3
1964 102.0 5.810784 4.364481 1.1 2.925 4.45 7.350 24.7
1965 94.0 6.128723 4.669637 1.0 2.725 4.75 8.050 24.1
1966 103.0 6.262136 4.472599 1.3 3.200 5.20 7.800 24.6
1967 108.0 6.163889 4.304040 1.1 3.300 5.15 7.650 24.2
1968 136.0 5.927206 4.252833 0.5 2.800 4.70 7.625 23.8
1969 146.0 6.357534 4.192914 0.9 3.500 4.85 8.800 21.1
1970 154.0 5.625974 3.667144 0.9 3.025 4.50 7.475 17.7
1971 181.0 5.475138 3.671193 0.5 3.000 4.50 7.000 18.2
1972 189.0 5.408466 3.859353 0.4 2.800 4.10 6.900 19.2
1973 194.0 5.215464 3.676542 0.8 2.600 4.15 6.450 18.6
1974 184.0 4.972283 3.410149 0.7 2.700 4.00 6.225 18.1
1975 210.0 4.678095 3.153868 0.6 2.200 3.90 6.175 14.8
1976 199.0 4.830151 3.142201 0.6 2.600 4.00 6.250 16.9
1977 260.0 4.676923 3.061885 0.6 2.475 3.80 6.400 14.4
1978 259.0 4.747490 3.039906 0.8 2.600 3.60 6.550 15.7
1979 247.0 4.559514 3.029057 0.8 2.300 3.60 6.050 17.6
1980 248.0 4.656048 2.829866 0.7 2.375 4.00 6.425 15.0
1981 262.0 4.246947 2.670696 0.7 2.100 3.60 5.875 14.8
1982 270.0 4.197778 2.653551 0.6 2.100 3.40 5.700 14.7
1983 277.0 4.253069 2.669222 0.9 2.300 3.60 5.700 15.3
1984 262.0 4.107252 2.664220 0.7 2.100 3.45 5.700 13.4
1985 263.0 4.207224 2.625547 0.6 2.300 3.40 5.650 13.1
1986 260.0 4.213846 2.669888 0.7 2.075 3.45 5.725 13.1
1987 267.0 4.242697 2.804114 0.5 2.000 3.50 5.750 14.6
1988 275.0 4.285455 2.693871 0.6 2.300 3.50 6.050 13.0
1989 292.0 4.261301 2.623311 0.5 2.300 3.55 5.900 13.5
1990 312.0 4.235577 2.640006 0.5 2.375 3.60 5.800 14.0
1991 304.0 4.334539 2.647963 0.6 2.300 3.50 5.825 13.8
1992 310.0 4.260968 2.847617 0.4 2.225 3.45 5.800 18.7
1993 308.0 4.208766 2.792828 0.3 2.275 3.50 5.500 18.3
1994 304.0 4.294737 2.786668 0.7 2.300 3.60 5.500 17.3
1995 314.0 4.174522 2.698690 0.5 2.225 3.30 5.600 16.8
1996 343.0 4.156560 2.615095 0.6 2.250 3.40 5.500 14.9
1997 337.0 4.225223 2.714871 0.4 2.200 3.50 5.500 16.1
1998 342.0 4.232164 2.577404 0.7 2.200 3.50 5.600 15.0
1999 217.0 4.602304 2.575066 1.0 2.700 3.80 6.000 13.0
2000 327.0 4.210398 2.465097 0.6 2.250 3.70 5.700 14.1
2001 335.0 4.276418 2.538543 0.5 2.500 3.70 5.500 14.1
2002 332.0 4.287048 2.386337 0.8 2.600 3.90 5.400 13.0
2003 324.0 4.251235 2.390933 0.4 2.500 3.75 5.525 15.4
2004 348.0 4.263506 2.419223 0.6 2.500 3.80 5.300 13.9
2005 361.0 4.198061 2.427029 0.5 2.400 3.50 5.500 13.5
2006 345.0 4.140290 2.346627 0.4 2.300 3.60 5.200 12.7
2007 348.0 4.118391 2.485521 0.7 2.300 3.40 5.400 12.8
2008 342.0 4.285380 2.571218 0.5 2.400 3.55 5.300 14.2
2009 350.0 4.182857 2.400595 0.8 2.325 3.60 5.300 13.8
2010 348.0 4.204310 2.562793 0.6 2.300 3.50 5.500 13.2
2011 380.0 4.027105 2.375063 0.6 2.400 3.40 5.100 15.2
2012 305.0 4.275410 2.394776 0.8 2.500 3.70 5.300 14.5
2013 365.0 3.986301 2.405506 0.4 2.200 3.30 5.200 12.4
2014 366.0 4.127596 2.449787 0.8 2.400 3.50 5.200 13.6
2015 385.0 4.177143 2.338558 0.7 2.400 3.60 5.300 15.0
2016 360.0 4.134167 2.400563 0.7 2.400 3.50 5.325 14.8
2017 369.0 4.204878 2.443109 0.6 2.600 3.50 5.500 14.1
2018 355.0 4.243944 2.435144 0.4 2.500 3.80 5.400 16.0
2019 391.0 4.353964 2.510497 0.7 2.600 3.80 5.300 15.6
2020 335.0 4.497015 2.457030 1.0 2.700 4.10 5.700 15.8
2021 335.0 4.457612 2.446517 0.9 2.700 3.90 5.600 14.3
2022 384.0 4.383073 2.424720 0.8 2.675 3.90 5.400 14.7
2023 385.0 4.244416 2.354335 0.8 2.600 3.70 5.300 12.5
2024 376.0 4.213298 2.353943 0.8 2.600 3.70 5.200 13.7

結果


1950年代から60年代がレギュラー選手当たり1試合平均5リバウンド以上と高いですね。maxは歴代シーズンリバウンド王です。
ウィルト・チェンバレン選手やビル・ラッセル選手が1試合当たり20リバウンド以上と今では考えられない数値を叩き出しています。
3ポイントが導入された1980年以降は平均4リバウンド台を安定して推移しています。

現代バスケは3ポイントが重視され、戦略や平均得点が変わっていく中、レギュラー選手たちの平均リバウンド回数は1980年から意外に安定していることが分かります。

2025年6月15日日曜日

NBA選手シーズンごとの平均得点

NBA選手のシーズン当たりの得点

 データを元にシーズン毎の平均得点の推移をグラフ化してみます。

外れ値を省くために、1シーズン40試合以上出場した選手で構成しています。

#! /usr/bin/env python  
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns


fn = "data/player_per_game.csv"
df = pd.read_csv(fn, index_col=0)

df2 = df[df["g"] >= 40]

des = df2.groupby("season")["PPG"].describe()
print(des)

count mean std min 25% 50% 75% max
season
1950 183.0 8.178142 4.114657 1.7 5.000 7.40 10.800 27.4
1951 108.0 8.976852 4.619314 2.1 5.975 8.10 11.325 28.4
1952 94.0 9.263830 4.777610 1.3 6.100 8.75 12.000 25.4
1953 102.0 9.023529 4.408142 2.2 5.525 8.85 11.275 22.3
1954 91.0 8.651648 4.246943 1.6 5.900 8.20 10.450 24.4
1955 81.0 10.046914 5.192087 2.4 5.900 9.60 13.100 22.7
1956 80.0 10.177500 5.222056 2.4 6.525 8.85 13.225 25.7
1957 83.0 10.397590 5.245439 2.2 6.600 9.70 12.400 25.6
1958 78.0 11.506410 5.798216 3.4 7.400 9.40 16.400 27.8
1959 85.0 11.260000 5.994466 3.5 6.500 9.80 14.400 29.2
1960 87.0 11.886207 6.852264 3.0 7.350 9.90 14.350 37.6
1961 83.0 12.225301 7.547199 2.2 6.400 10.20 15.350 38.4
1962 100.0 12.348000 8.555221 1.5 6.050 10.35 15.950 50.4
1963 94.0 12.045745 7.262833 2.2 7.200 10.50 14.300 44.8
1964 102.0 11.489216 6.883585 1.7 5.775 9.90 15.775 36.9
1965 94.0 11.620213 6.724751 2.5 6.300 11.00 14.575 34.7
1966 103.0 11.838835 6.569899 2.6 7.300 10.70 15.350 33.5
1967 108.0 12.126852 6.489396 3.0 7.225 10.55 17.400 35.6
1968 136.0 11.949265 6.489273 2.0 6.550 11.65 16.625 29.2
1969 146.0 12.370548 6.392174 2.3 7.325 11.50 17.350 28.4
1970 154.0 12.246753 6.560719 2.1 7.200 11.50 15.550 31.2
1971 181.0 11.462431 6.616757 1.5 5.900 9.70 16.000 31.7
1972 189.0 11.605820 6.817438 1.5 5.900 11.10 15.700 34.8
1973 194.0 10.764433 6.656815 1.6 5.700 9.05 14.800 34.0
1974 184.0 10.810326 6.559276 1.8 5.575 9.30 14.975 30.6
1975 210.0 10.341429 6.244741 1.3 5.700 9.00 13.375 34.5
1976 199.0 10.492462 5.890430 1.7 5.900 9.20 13.850 31.1
1977 260.0 10.482308 5.847033 1.4 6.000 9.05 13.225 31.1
1978 259.0 10.945174 5.930006 2.0 6.250 9.60 14.750 27.2
1979 247.0 11.290283 6.263495 1.5 6.500 10.10 15.650 29.6
1980 248.0 11.283065 5.887415 2.5 6.600 10.25 14.900 33.1
1981 262.0 10.632824 5.939516 0.7 5.800 9.55 14.400 30.7
1982 270.0 10.534815 6.001231 1.3 5.700 9.80 14.350 32.3
1983 277.0 10.419134 6.093150 1.5 5.300 8.90 14.100 28.4
1984 262.0 10.524809 6.278965 1.3 5.425 9.00 14.500 30.6
1985 263.0 10.649810 6.560726 1.3 5.400 9.30 14.800 32.9
1986 260.0 10.577692 6.095973 0.6 5.375 9.25 14.300 30.3
1987 267.0 10.570412 6.424687 1.7 5.600 9.20 14.500 37.1
1988 275.0 10.619636 6.160800 1.1 6.000 9.50 14.200 35.0
1989 292.0 10.566438 6.399106 0.7 5.375 9.20 15.000 32.5
1990 312.0 10.410897 6.379762 1.1 5.175 8.95 14.700 33.6
1991 304.0 10.608224 6.295456 1.3 5.300 9.25 14.925 31.5
1992 310.0 10.226129 6.052927 1.1 5.100 9.20 14.175 30.1
1993 308.0 10.318831 6.016749 0.7 5.700 8.80 14.400 32.6
1994 304.0 10.280592 5.696689 1.7 5.675 9.25 14.125 29.8
1995 314.0 10.038854 5.879826 1.2 5.000 9.20 13.550 29.3
1996 343.0 9.868513 5.705394 0.3 5.100 9.10 13.300 30.4
1997 337.0 9.747478 5.926339 1.2 4.800 8.00 13.800 29.6
1998 342.0 9.711988 5.496349 1.1 5.300 9.00 13.275 28.7
1999 217.0 10.335945 5.207891 1.2 6.400 9.30 13.300 26.8
2000 327.0 9.568807 5.702088 0.8 5.400 8.10 12.500 29.7
2001 335.0 9.408955 5.914256 0.6 4.950 7.90 12.000 31.1
2002 332.0 9.771988 5.841670 1.1 5.100 8.40 12.950 31.4
2003 324.0 9.716667 6.016440 0.8 5.175 8.10 13.125 32.1
2004 348.0 9.454885 5.631074 0.9 4.900 7.95 13.225 28.0
2005 361.0 9.865097 5.911378 1.0 5.300 8.40 13.000 30.7
2006 345.0 9.857681 6.261762 1.1 5.000 8.60 13.000 35.4
2007 348.0 10.052299 6.163668 1.1 5.200 8.85 13.325 31.6
2008 342.0 10.047076 5.904616 0.9 5.725 8.65 13.100 30.0
2009 350.0 10.225143 5.957750 0.8 5.200 9.05 14.175 30.2
2010 348.0 10.136782 5.666940 0.7 6.000 8.90 13.800 30.1
2011 380.0 9.819211 5.582670 1.1 5.300 8.70 13.225 27.7
2012 305.0 9.887541 5.262952 1.0 5.500 9.30 12.700 28.0
2013 365.0 9.390959 5.262332 0.5 5.200 8.60 12.800 28.7
2014 366.0 9.807923 5.548187 1.6 5.525 9.05 13.200 32.0
2015 385.0 9.748052 5.014614 1.8 5.900 8.70 12.700 28.1
2016 360.0 9.875833 5.395877 1.3 5.900 8.70 12.700 30.1
2017 369.0 10.226016 5.935251 1.7 6.100 8.70 13.200 31.6
2018 355.0 10.488451 5.692110 1.4 6.050 9.20 13.500 30.4
2019 391.0 10.691560 5.802060 1.0 6.500 9.30 13.700 36.1
2020 335.0 11.280896 6.125054 1.5 6.600 9.80 15.050 34.3
2021 335.0 11.455224 6.338176 1.9 6.750 9.70 14.600 32.0
2022 384.0 10.966927 5.995893 2.2 6.400 9.25 14.450 30.6
2023 385.0 11.378701 6.651446 2.1 6.600 9.50 14.700 33.1
2024 376.0 11.025532 6.538390 1.7 5.975 9.35 14.700 33.9


plt.figure(figsize=(20, 6))
plt.xlim(1950, 2024)
plt.title("points per season")
sns.lineplot(data=des[["mean", "min", "max"]])
plt.show()

結果



最高得点(max)はシーズン得点王なのでよく知られている通りです。
1962年のウィルト・チェンバレン選手や1987年のマイケル・ジョーダン選手はグラフの山を作っています。
平均を見ると概ね10点超える辺りがレギュラー選手の得点と言えます。
1960〜70年代一時12点台と高く、2000年代に一時落ちてますが3Pが増えた現在は11点台となっています。

2024年7月29日月曜日

NBAの平均年齢推移

NBAチームの平均年齢

NBAにおいて選手の平均年齢がどのように推移してきたかチーム毎のデータを使い抽出してみました。

NBA全体の平均年齢とシーズン毎の若いチームとベテランチーム


season 平均年齢 最高チーム平均年齢 最高齢チーム 最低チーム平均年齢 最低齢チーム
1952 26.2 28.9 Rochester Royals 24.5 Indianapolis Olympians
1953 26.4 29.2 Rochester Royals 25.4 Boston Celtics
1954 26.4 29.2 Rochester Royals 24.1 Baltimore Bullets
1955 26.5 29.0 Rochester Royals 24.9 Baltimore Bullets
1956 26.3 27.2 Fort Wayne Pistons 25.2 Rochester Royals
1957 26.2 27.7 St. Louis Hawks 23.4 Rochester Royals
1958 26.8 28.4 Detroit Pistons 25.1 New York Knicks
1959 26.4 28.1 St. Louis Hawks 23.7 Cincinnati Royals
1960 26.5 27.6 St. Louis Hawks 25.0 Cincinnati Royals
1961 26.4 28.3 Boston Celtics 24.4 Cincinnati Royals
1962 26.4 27.9 Boston Celtics 25.0 Cincinnati Royals
1963 26.3 28.3 Boston Celtics 24.9 Detroit Pistons
1964 26.4 28.4 Boston Celtics 25.0 Baltimore Bullets
1965 26.4 28.3 Boston Celtics 24.4 Detroit Pistons
1966 26.6 28.8 Boston Celtics 25.0 Detroit Pistons
1967 26.6 29.6 Boston Celtics 25.2 Detroit Pistons
1968 26.8 29.5 Boston Celtics 25.1 Seattle SuperSonics
1969 26.9 30.5 Boston Celtics 24.8 Phoenix Suns
1970 26.8 28.4 Boston Celtics 24.9 Milwaukee Bucks
1971 26.6 29.0 Philadelphia 76ers 24.3 Cleveland Cavaliers
1972 26.6 29.5 Los Angeles Lakers 24.2 Cleveland Cavaliers
1973 26.7 30.3 Los Angeles Lakers 24.0 Portland Trail Blazers
1974 26.9 28.7 Chicago Bulls 24.4 Buffalo Braves
1975 26.6 30.2 Chicago Bulls 25.1 Atlanta Hawks
1976 26.5 29.0 Boston Celtics 24.5 Seattle SuperSonics
1977 26.2 28.7 Boston Celtics 24.5 Atlanta Hawks
1978 26.2 29.7 Boston Celtics 23.8 Milwaukee Bucks
1979 26.3 28.2 Washington Bullets 24.6 Atlanta Hawks
1980 26.4 29.0 Washington Bullets 24.1 New York Knicks
1981 26.2 28.6 Washington Bullets 24.3 Detroit Pistons
1982 26.2 28.3 Houston Rockets 24.0 Kansas City Kings
1983 26.1 29.0 Houston Rockets 24.2 Dallas Mavericks
1984 26.4 28.4 Milwaukee Bucks 24.4 Chicago Bulls
1985 26.5 28.5 Boston Celtics 24.1 Indiana Pacers
1986 26.8 29.3 Boston Celtics 25.0 Indiana Pacers
1987 26.6 29.4 Boston Celtics 24.6 Cleveland Cavaliers
1988 26.9 29.8 Boston Celtics 24.6 Cleveland Cavaliers
1989 26.9 29.8 Denver Nuggets 24.6 Los Angeles Clippers
1990 27.1 30.2 Boston Celtics 24.5 Los Angeles Clippers
1991 27.2 30.6 Dallas Mavericks 24.0 Miami Heat
1992 27.2 30.2 Milwaukee Bucks 24.4 Miami Heat
1993 27.1 29.9 Detroit Pistons 24.8 Denver Nuggets
1994 27.2 29.4 Utah Jazz 24.8 Denver Nuggets
1995 27.2 29.6 Utah Jazz 24.3 Dallas Mavericks
1996 27.5 30.4 New York Knicks 24.8 Washington Bullets
1997 27.7 30.8 Houston Rockets 25.0 Vancouver Grizzlies
1998 27.7 32.0 Houston Rockets 23.9 Boston Celtics
1999 27.9 31.2 Seattle SuperSonics 24.3 Boston Celtics
2000 27.8 31.5 Utah Jazz 24.2 Los Angeles Clippers
2001 27.7 32.0 Utah Jazz 23.2 Chicago Bulls
2002 27.4 30.3 New York Knicks 24.4 Los Angeles Clippers
2003 27.2 30.9 Utah Jazz 23.5 Cleveland Cavaliers
2004 27.0 30.3 New Orleans Hornets 24.3 Los Angeles Clippers
2005 26.9 29.7 Houston Rockets 24.9 Charlotte Bobcats
2006 26.5 29.8 San Antonio Spurs 22.7 Atlanta Hawks
2007 26.6 30.4 San Antonio Spurs 23.5 Boston Celtics
2008 26.8 31.4 San Antonio Spurs 24.1 Portland Trail Blazers
2009 26.6 30.4 San Antonio Spurs 23.3 Memphis Grizzlies
2010 26.6 30.7 Dallas Mavericks 23.2 Oklahoma City Thunder
2011 26.6 30.9 Dallas Mavericks 23.7 Oklahoma City Thunder
2012 26.6 31.3 Dallas Mavericks 24.2 Washington Wizards
2013 26.7 30.7 Los Angeles Lakers 24.0 New Orleans Hornets
2014 26.5 30.6 Dallas Mavericks 23.4 Philadelphia 76ers
2015 26.7 29.9 Dallas Mavericks 23.2 Philadelphia 76ers
2016 26.6 30.5 Memphis Grizzlies 23.3 Philadelphia 76ers
2017 26.6 30.0 Los Angeles Clippers 24.0 Minnesota Timberwolves
2018 26.4 30.6 Cleveland Cavaliers 23.7 Los Angeles Lakers
2019 26.3 29.2 Houston Rockets 23.4 New York Knicks
2020 26.0 29.5 Los Angeles Lakers 24.1 Atlanta Hawks
2021 26.1 28.8 Los Angeles Clippers 22.8 Oklahoma City Thunder
2022 26.1 30.2 Los Angeles Lakers 22.4 Oklahoma City Thunder
2023 26.1 29.8 Milwaukee Bucks 22.1 Houston Rockets
2024 26.4 30.4 Los Angeles Clippers 23.0 San Antonio Spurs


シーズン毎年齢推移グラフ


年齢分布は、取得する時期によってトレードや退団選手などいたり、出場時間も選手によって偏りがあり、必ずしも正確とは言えませんが、傾向は分かるでしょう。

NBAでは大体26歳から27歳辺りで平均年齢が推移しており、これは他の過酷なスポーツでも同様です。
体力と経験が最も出せる年齢がその辺りなのでしょう。
2000年辺りに少し平均年齢が高い時期がありますが、黄金世代と呼ばれる選手が多くいた時期と重なります。

ほとんど新人のチームもいれば、ベテランが多いチームもいてチームの傾向が見て取れます。

NBAの1試合平均チームスタッツ (2025-26レギュラーシーズン)

前回 の元となったデータ、チーム毎の各スタッツ平均です。   team games w l win% PTS AST BLK STL ...