数据分析项目复习(FIFA2018)

import numpy as np
import pandas as pd
import matplotlib as plt
#加载数据文件
df = pd.read_csv('D:\桌面\Python\pythonCourse\第九章-四个实例\Python案例数据\Python妗堜緥\FIFA_2018_player.csv')
#简单浏览数据信息:重点看看列名,数据类型
df.head()
#浏览数据的整体情况(也是用来看看异常值的基本手段)
df.describe()
#看看名字这一列有没有空值
df[df.name.isnull()]
#看看全名这一列有没有空值
df[df.full_name.isnull()]
#看看国籍这一列有没有空值
df[df.nationality.isnull()]
#看看联赛这一列又没有空值
df[df.league.isnull()]
#删除联赛名为空的数据 通过.index锁定行(也就是某条数据)
df.drop(df[df.league.isnull()].index, inplace=True)
#看看删除成功没有呢
df[df.league.isnull()]
#看看俱乐部有没有空值
df[df.club.isnull()]
#在前面的describe中我们注意到年龄的最小值是16,那么有没有问题呢?
df[df.age == 16] #df[df['age'] == 16]
#在前面的describe注意到薪酬的最小值出现0,重点来看看这些数据
df[df['eur_value'] < 1000]
#用薪酬的平均值来填充这些薪酬为0的数据列,如果数据量少也可以直接删除
df['eur_value'].replace(0,df['eur_value'].mean(), inplace = True)
#看看填充后还有没有异常情况
df[df['eur_value'] < 1000]
#周薪是否也有过小的情况
df[df['eur_wage'] < 1000]
#看看数据中有没有完全重复的数据
df[df.duplicated()]
#看看以下的列有没有重复值
df[df.loc[:,['full_name', 'nationality', 'league', 'club', 'birth_date']].duplicated()]
#全名这一列是唯一值的条数与总数据的条数的比较:这样可以快速知道全名有多少个重复值
len(df.full_name.unique()), len(df)
#也可以通过.duplicated这个方法来看
df[df.full_name.duplicated(keep=False)]
#取出其中的一个重复值的判断~
df[df.full_name == 'Lars Bender']

#数据清洗完毕
#通过df.count()来查看各列的数据完整性
df.count()
#也可以通过df.describe来粗略地看看
df.describe()
#总国籍这个维度上来看看每个国家的足球运动员有数量并以降序排列
nationality_data = df.groupby('nationality', as_index = False).count()

[['nationality', 'ID']]

nationality_data.rename(columns={'ID':'player_count'}, inplace = True)

nationality_sorted_data = nationality_data.sort_values('player_count', ascending=False)

nationality_sorted_data[nationality_sorted_data.player_count > 100]

league_data = df.groupby('league', as_index=False).count()[['league','ID']].sort_values('ID',ascending = False)
league_data

df.groupby('club',as_index = False).mean()[['club', 'eur_wage']].sort_values('eur_wage', ascending = False)

bins = np.arange(15, 50, 5)
bins_data = pd.cut(df['age'], bins)

bin_counts = df['age'].groupby(bins_data).count()
bin_counts
bin_counts

bin_counts.index = [str(x.left) + '-' + str(x.right) for x in bin_counts.index]

# print(bin_counts.plot(kind='pie'))

bin_counts.plot(kind = 'bar', alpha = 1, rot = 0)

发布了4 篇原创文章 · 获赞 0 · 访问量 144

猜你喜欢

转载自blog.csdn.net/li_ming_joy/article/details/105460462