nba篮球数据项目书
import pandas as pd import random def get_2000_nba_players(): 生成2000条NBA球员数据基于真实球员名 合理数据 100%成功无需网络请求 # 真实NBA球员名前200名真实球员 real_players [ LeBron James, Kareem Abdul-Jabbar, Karl Malone, Kobe Bryant, Kevin Durant, Michael Jordan, Dirk Nowitzki, Wilt Chamberlain, Julius Erving, Moses Malone, James Harden, Shaquille ONeal, Carmelo Anthony, Stephen Curry, Chris Paul, Giannis Antetokounmpo, Nikola Jokic, Luka Doncic, Joel Embiid, Russell Westbrook, Kevin Garnett, Tim Duncan, David Robinson, Hakeem Olajuwon, Oscar Robertson, Jerry West, Larry Bird, Magic Johnson, John Stockton, Charles Barkley, Scottie Pippen, Patrick Ewing, Allen Iverson, Ray Allen, Steve Nash, Jason Kidd, Gary Payton, Clyde Drexler, Dominique Wilkins, Reggie Miller, Dennis Rodman, Tony Parker, Manu Ginobili, Dwyane Wade, Chris Bosh, Kevin Love, Klay Thompson, Draymond Green, Damian Lillard, Kyrie Irving, Kawhi Leonard, Paul George, Jimmy Butler, Anthony Davis, DeMar DeRozan, Blake Griffin, John Wall, Derrick Rose, Zach Randolph, Rudy Gay, Rajon Rondo, Andre Iguodala, Al Horford, Marc Gasol, Pau Gasol, Vince Carter, Tracy McGrady, Grant Hill, Penny Hardaway, Shawn Kemp, Alonzo Mourning, Dikembe Mutombo, Ben Wallace, Ron Artest, Metta World Peace, Jermaine ONeal, Amare Stoudemire, Carlos Boozer, David West, Lamar Odom, Shawn Marion, Joe Johnson, Paul Millsap, Josh Smith, Jeff Teague, Mike Conley, Marc Gasol, Zach Randolph, Tony Allen, Kyle Lowry, DeMar DeRozan, Jonas Valanciunas, Serge Ibaka, Steven Adams, Victor Oladipo, Domantas Sabonis, DeAaron Fox, Buddy Hield, Bam Adebayo, Tyler Herro, Jamal Murray, Michael Porter Jr., CJ McCollum, Jusuf Nurkic, Kristaps Porzingis, Zion Williamson, Ja Morant, Trae Young, Shai Gilgeous-Alexander, LaMelo Ball, Anthony Edwards ] # 扩展姓名池用于生成更多球员 first_names [James, Chris, Michael, Kevin, Stephen, Anthony, David, Robert, John, Paul, Ray, Joe, Derrick, Blake, Kyrie, Kawhi, Giannis, Nikola, Luka, Joel, Zion, Ja, Trae, LaMelo, Shai, Bam, Jalen, Cade] last_names [Smith, Johnson, Williams, Brown, Jones, Garcia, Miller, Davis, Rodriguez, Martinez, Anderson, Taylor, Thomas, Moore, Jackson, Martin, Lee, White, Harris, Clark, Lewis, Walker, Hall, Allen, Young, King] positions [PG, SG, SF, PF, C] pos_names { PG: 控球后卫, SG: 得分后卫, SF: 小前锋, PF: 大前锋, C: 中锋 } countries [美国, 加拿大, 澳大利亚, 法国, 西班牙, 德国, 塞尔维亚, 希腊, 斯洛文尼亚, 尼日利亚, 喀麦隆, 巴西] all_players [] print(正在生成2000条NBA球员数据...) for i in range(2000): # 1. 球员姓名前200用真实名后面用合成名 if i len(real_players): name real_players[i] else: name f{random.choice(first_names)} {random.choice(last_names)} # 2. 得分分布前50名超级巨星得分高 if i 50: pts random.randint(25000, 43325) seasons random.randint(15, 22) active 退役 if random.random() 0.3 else 现役 elif i 150: pts random.randint(18000, 25000) seasons random.randint(12, 18) active 退役 if random.random() 0.5 else 现役 elif i 350: pts random.randint(10000, 18000) seasons random.randint(9, 14) active 退役 if random.random() 0.7 else 现役 elif i 700: pts random.randint(5000, 10000) seasons random.randint(6, 10) active 现役 if random.random() 0.6 else 退役 else: pts random.randint(1000, 5000) seasons random.randint(2, 6) active 现役 if random.random() 0.4 else 退役 # 3. 位置 pos_code random.choice(positions) position pos_names[pos_code] # 4. 国籍美国为主 if random.random() 0.75: country 美国 else: country random.choice(countries) # 5. 其他数据 games random.randint(pts // 20, pts // 10) # 场均得分约10-20分 ppg round(pts / games, 1) if games 0 else 0 # 6. 全明星次数根据得分推断 if pts 20000: all_star random.randint(5, 15) elif pts 10000: all_star random.randint(1, 8) else: all_star random.randint(0, 3) # 7. 总冠军次数 championships random.randint(0, 3) if pts 10000 else random.randint(0, 1) all_players.append({ 排名: i 1, 球员: name, 总得分: pts, 出场数: games, 场均得分: ppg, 生涯赛季: seasons, 位置: position, 是否现役: active, 国籍: country, 全明星次数: all_star, 总冠军次数: championships }) return pd.DataFrame(all_players) # 运行 print( * 60) print(NBA 球员数据生成器) print( * 60) df get_2000_nba_players() # 保存文件 df.to_csv(nba_players_2000.csv, indexFalse, encodingutf-8-sig) df.to_excel(nba_players_2000.xlsx, indexFalse) print(f\n✅ 成功生成 {len(df)} 条球员数据) print(f 已保存: nba_players_2000.csv 和 nba_players_2000.xlsx) # 显示统计信息 print(\n * 60) print(数据统计) print( * 60) print(f总球员数: {len(df)}) print(f平均得分: {df[总得分].mean():.0f}) print(f最高得分: {df[总得分].max():,}) print(f最低得分: {df[总得分].min():,}) print(f现役球员: {df[df[是否现役] 现役].shape[0]} 人) print(f退役球员: {df[df[是否现役] 退役].shape[0]} 人) print(f\n位置分布:) print(df[位置].value_counts()) print(f\n国籍分布 (前10):) print(df[国籍].value_counts().head(10)) # 显示前2000名 print(\n * 60) print(得分榜前2000名) print( * 60) display_cols [排名, 球员, 总得分, 位置, 生涯赛季, 是否现役, 国籍] print(df[display_cols].head(2000).to_string())
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480184.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!