一、数据说明:
#代表全国图鉴编号,不同行存在相同数字则表示为该妖怪的不同状态
妖怪具有单属性和双属性两种,对于单属性的妖怪,Type 2为缺失值
Total, HP, Attack, Defense, Sp. Atk, Sp. Def, Speed分别代表种族值、体力、物攻、防御、特攻、特防、速度,其中种族值为后6项之和
二、处理要求:
将列名更换为中文
分别存储单属性与双属性的妖怪 存储为不同csv文件
对于#重复的妖怪只保留第一条记录 并求出第一属性的种类数量和前三数量对应的种类
求第一属性和第二属性的组合种类
找出Total, HP, Attack, Defense, Sp. Atk, Sp. Def, Speed的最大值,平均值,方差,中位数
将HP超过100的替换为high,不足50的替换为low,否则设为mid
对total值进行降序排序并存储为csv文件
三、代码展示:
#导入库、数据
import pandas as pd
data=pd.read_csv('pokemon.csv')
#将列名更换为中文
data.columns=['编号','名字','属性一','属性二','种族值','血量','攻击','防御','特攻','特防','速度']
#分别存储单属性与双属性的妖怪 存储为不同csv文件
#单属性
single=data[data['属性二'].isnull()]
single.drop(columns=['属性二'],inplace=True)
single.to_csv('single.csv',index=False)
#双属性
dual=data[data['属性二'].notnull()]
dual.to_csv('dual.csv',index=False)
#对于#重复的妖怪只保留第一条记录 并求出第一属性的种类数量和前三数量对应的种类
data.drop_duplicates('编号',keep='first')
print(data['属性一'].nunique())
print (data['属性一'].value_counts().head(3))
#求第一属性和第二属性的组合种类
df=data.groupby(['属性一','属性二']).size()
#找出Total, HP, Attack, Defense, Sp. Atk, Sp. Def, Speed的最大值,平均值,方差,中位数
#以'血量'为例
df=data.describe()
df['血量']
#将HP超过100的替换为high,不足50的替换为low,否则设为mid
df=data.copy()
df['血量']=df['血量'].apply(lambda x:'high' if int(x)>100 else 'low' if int(x)<50 else 'mid')
#对total值进行降序排序并存储为csv文件
df.sort_values('种族值',ascending=False,inplace=True)
df.to_csv('sort.csv')