Pandas实战——NBA篮球队员成绩分析【修订版】

3 篇文章 0 订阅
3 篇文章 0 订阅

更多内容关注个人博客:https://blog.focuspoints.cn

  • 在前一篇实战中,小编漏掉一个参数,以及没有按照实际情况考虑(同一个人多个赛季但还是这个人),导致结果有偏差。 话不多说,直接上代码!
#@Time   : 2018/12/10 13:13
#@Author : focuspoints.cn

import pandas as pd
from numpy import *

csv_filename = 'player_regular_season.csv'
df = pd.read_csv(csv_filename,delimiter=",")
df_result = pd.DataFrame()


def load():
    global df_result
    global df
    for index, row in df.iterrows():
        if row['gp'] == 'N':
            df.drop(index, axis=0, inplace=True)
    df.fillna(0)
    df['gp'] = df['gp'].astype(int)
    # 合并数据
    df['name'] = df['firstname'] + ' ' + df['lastname']
    df = df.groupby(by='name').sum()
    df['Efficiency'] = ((df['pts'] + df['reb'] + df['asts'] + df['stl'] + df['blk']) - (
                (df['fga'] - df['fgm']) + (df['fta'] - df['ftm']) + df['turnover']))/df['gp']

def showSock(n,print_type):
    global df_result
    global df

    index_num = 0
    times = 27 - len("Name") - len(print_type) / 2
    print(5 * " ", "Name", " " * int(times), print_type)
    print(45 * "-")
    df_result = df.sort_values(print_type, ascending=False)
    for index,row in df_result.iterrows():
        if index_num == n :
            break
        else:
            result = row[print_type]
            length = len(index)
            times = 20 - length
            space = " " * times
            print(index, space, ":","%12d" % result)
        index_num += 1
    print(45 * "-")

def sreach():
    print("程序加载完成!")
    print("请输入要查询的值(英文缩写):")
    print("-" * 45)
    print("pts:得分 asts:助攻 stl:抢断 blk:盖帽")
    print("fga:投篮次数 fgm:命中次数 minutes:上场时间 reb:篮板")
    print("fta:罚球次数 ftm:罚球命中次数 turnover:失误 Efficiency:效率值")
    print("-" * 45)
    print_type = input()
    type_list = ["pts","asts","st1","blk","fga","fgm","minutes","reb","fta","ftm","turnover","Efficiency"]
    if print_type not in type_list:
        print("输入类型有误,请重新输入!")
        sreach()
    print("-" * 45)
    print("请输入查询数量:")
    print("-" * 45)
    n = int(input())
    print("-" * 45)
    showSock(n, print_type)

print("程序预加载中,请稍后···")
load()
sreach()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值