当前位置: 首页 > news >正文

《Hadoop大数据技术应用综合训练》----以NBA冠军球队计数为例

一、综合训练要求

        案例中需要处理的文件为nba.csv,该文件记录了NBA历年总冠军的详细情况,文件的字段从左到右依次为比赛年份、具体日期、冠军、比分、亚军和当年MVP(联盟MVP是Most Valuable Player缩写,即最有价值球员),每个字段以半角逗号“,”进行分割,如图1所示。

图1 NBA原始文件数据

本训练要求对此数据集做如下处理:

(1)数据清洗;

(2)统计各球队获得冠军数量;并将东西部球队的统计结果分别存储。

二、实现过程

(一)数据处理说明

      NBA的历史较为久远,从1947年至2019年的这段时间里,一些球队已经不存在了(例如:芝加哥牡鹿队),还有部分球队的队名发生了变化(例如:明尼阿波利斯湖人队,现在的名称是洛杉矶湖人队);所以,对于已经不存在的球队,继续保存其名称,不做修改;但是已经更改名称的球队,需要映射为现在球队的名称;

      另外,因为要对球队进行东西分区的统计,所以要对球队添加东西分区的标识。

(二)解题思路

    添加球队新老名称的映射,读取每行数据时,遇到老的名称,将其替换为新名称;添加东西分区球队的映射,读取数据时,分析冠军球队所在分区,然后添加标识(东部球队以“E”标识,西部球队以“W”标识,未分区的球队以“F”标识)

    需要注意的是,美国NBA联盟是从1970年开始进行东西分区的,因此需要对年份进行判断。

(三)核心代码

import pandas as pd
import repd.set_option("display.unicode.east_asian_width",True)
pd.set_option('display.width',1000)
pd.set_option('display.max_columns',None)
data = pd.read_excel("NBA.xlsx")
team_new_old = []
team_old = []
dict_team = {}
with open('新旧队名映射.txt','r', encoding='utf-8') as f:lines = f.readlines()

http://www.mrgr.cn/news/79717.html

相关文章:

  • muduo网络库:各类功能
  • 在虚拟机的python中安装配置Jupyter Notebook
  • 多速率信号处理
  • 小程序开发实战项目:构建简易待办事项列表
  • 【初阶数据结构与算法】初阶数据结构总结之顺序表、单链表、双链表、栈、队列、二叉树顺序结构堆、二叉树链式结构(附源码)
  • Vue项目实战-新能源汽车可视化(二)(持续更新中)
  • C# .NET CORE 开发问题汇总
  • day10 电商系统后台API——接口测试(使用postman)
  • 【Spark】Spark Join类型及Join实现方式
  • 数据结构DAY1
  • 开发EDA工具常用的三方开源
  • 第七天:Linux中文本编辑工具和文本三剑客-grep 第八天:Linux中shell脚本编程1
  • python爬虫--小白篇【爬虫实践】
  • FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)
  • python学opencv|读取图像(七)抓取像素数据顺利修改图像大小
  • Flutter:开发环境搭建和Android Studio创建Flutter Project
  • Harbor 仓库部署(docker-compose 部署方式)
  • coco数据集转换SAM2格式
  • 文件下载和图片预览 Blob FileReader
  • SQL汇总数据:聚集函数
  • linux系统使用nginx代理mysql数据库
  • 分布式 CAP理论 总结
  • 【视频笔记】408新增知识点信号——里昂视频
  • 手里有病理切片+单细胞测序的数据,如何开展医工交叉的研究?
  • 【CSS in Depth 2 精译_073】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(中):对 CSS 行高的深入思考
  • vue中父组件接收子组件的多个参数的方法:$emit或事件总线