import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from pandas.plotting import parallel_coordinates
from pandas.plotting import andrews_curves
from pandas.plotting import radviz
df1 = pd.read_csv('04_fifa.csv', encoding='gbk') # 导入.csv文件,并指定编码格式
'''print(df1.shape[0]) # 获取数据行数
print(df1.shape[1]) # 获取数据列数
print(df1.iloc[:100, :3]) #获取100行3列数据
print(df1.iloc[56]) # 获取第57行数据
print(df1.iloc[:, 3]) # 获取第4列数据
print(df1.iloc[:2, :2]) # 获取前两行前两列数据'''
print(df1.isnull().sum()) # 统计缺失值列
df1.dropna(subset = ['number'], inplace = True) # 删除number列中有缺失值的行
df2 = df1.fillna(df1.mean()['height':'weight']) # 取平均值填充height列和weight列
# 按position进行分类,分组统计队员height、weight、age、caps平均值
df3 = df2[['position', 'height', 'weight', 'age', 'caps']]
print(df3.groupby(['position']).mean())
# 数据可视化
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False # 解决负号不显示问题
fig = plt.figure()
#绘制平行坐标图
plt.subplot(2,2,1)
plt.title('平行坐标图')
parallel_coordinates(df3,'position',color = ['blue','green','red','yellow'])
#绘制RadViz雷达图
plt.subplot(2,2,2)
radviz(df3,'position',color = ['blue', 'green', 'red', 'yellow'])
#绘制热力图
plt.subplot(2,2,3)
corr = df3.corr()
sns.heatmap(corr,annot=True)
plt.show()
运行错误提示:
D:\Python\lib\site-packages\pandas\plotting\_matplotlib\misc.py:147: UserWarning: Requested projection is different from current axis projection, creating new axis with requested projection.
ax = plt.gca(xlim=[-1, 1], ylim=[-1, 1])
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。