Pandas札记1_NBA数据处理

作者: 皮皮大 | 来源:发表于2019-07-23 14:11 被阅读20次

数据列属性

数据是在网上爬取的,总共有27个属性,分别是:

  • '球员姓名','赛季','胜负','对手球队名称','对手球队总得分','己方球队总得分',
  • '己方球队名称','首发','上场时间','投篮命中率','投篮命中数','投篮出手数',
  • '三分命中率','三分命中数','三分出手数','罚球命中率','罚球命中数','罚球次数',
  • '总篮板数','前场篮板数','后场篮板数','助攻数','抢断数','盖帽数','失误数','犯规数','得分'

数据读取

  • 导入数据:read_csv
  • 读取头、尾的几行数据: head(n);tail(n);默认是5
  • 读取列属性:columns属性
  • 读取数据维度:shape属性
import numpy as np
import pandas as pd
# 读取数据
nba_data = pd.read_csv(r"D:\Python\datalearning\PandasLearning\NBA_Data.csv", encoding = 'gb18030')

# 读取头尾的5行数据。默认是5行 
print(nba_data.head())
# print(nba_data.tail())

# 指定读取前8行数据
# print(nba_data.head(8))

# 查看read_csv()函数帮助文档
# print(help(pd.read_csv))
image.png
# 查看数据中的所有列属性
print(nba_data.columns)
# 查看数据大小:多少样本、多少个属性
print(nba_data.shape)

结果

Index(['球员姓名', '赛季', '胜负', '对手球队名称', '对手球队总得分', '己方球队总得分', '己方球队名称', '首发',
       '上场时间', '投篮命中率', '投篮命中数', '投篮出手数', '三分命中率', '三分命中数', '三分出手数', '罚球命中率',
       '罚球命中数', '罚球次数', '总篮板数', '前场篮板数', '后场篮板数', '助攻数', '抢断数', '盖帽数', '失误数',
       '犯规数', '得分'],
      dtype='object')
(1193, 27)

索引与计算

  • 读取某行数据:loc属性
  • 读取某列数据:df.["属性1"];有点类似字典,通过key获取所有的value
  • 读取多列数据:df.[["属性1", "属性2"]]
# 提取第一行数据
print(nba_data.loc[0])
# print(nba_data.loc[3:8])
# print(nba_data.loc[[3, 5, 8]])

# 获取某列的值
print(nba_data["胜负"].head(10)) 
# 获取多列的值
# print(nba_data[["胜负", "助攻数"]])
image.png
# 将罚球命中率改成小数形式:除以100
# 将所有列属性转换成列表形式,方便进行读取
nba_names = nba_data.columns.tolist()

# 读取含有"率"的属性
percent_columns = []  #  定义空列表,用于存放获取到的属性值以“率”结尾的
for i in nba_names:  
    if i.endswith("率"):
        percent_columns.append(i)  # 判断属性i是否以“率”结尾
percent_nba = nba_data[percent_columns] / 100
print(percent_nba.head(10))
# print(nba_data[percent_columns])  DF的列属性
image.png
# 增加一列属性:失误和犯规;
# 数据的shape发生变化
sum_fangui_shiwu = nba_data['失误数'] + nba_data['犯规数']
nba_data["失误和犯规"] = sum_fangui_shiwu
print(nba_data.shape)
print(nba_data.head(6))
image.png

相关文章

网友评论

    本文标题:Pandas札记1_NBA数据处理

    本文链接:https://www.haomeiwen.com/subject/lzbolctx.html