- 数据分析与提取
- 数据可视化
我们对爬取好的csv文件数据进行分析来设计课题后,通过pandas提取需要的信息并分析统计。
题设:
1.id1-500内中文名带有鸟的宝可梦
2.攻击力前十的毒属性宝可梦
3.速度前五并且属性为虫、飞行的宝可梦
4.英文名首字母为P,HP前十的宝可梦
5.特攻前十的特性狙击手的宝可梦
6.特防、防御之和前五的地面属性的宝可梦
代码实现,如下:
import pandas as pd
df = pd.read_csv(r"C:UsersdellPycharmProjectspythonProject1DataAnalyseHTMLBKM.csv",encoding='UTF-8')
#1.id1-500内中文名带有鸟的宝可梦
df_bird = df[:500]
df_bird = df_bird.loc[(df['中文名'].str.contains('鸟'))]
#2.攻击力前十的毒属性宝可梦
df_posion = df.loc[(df['属性1'] == '毒') | (df['属性2'] == '毒')]
df_posion = df_posion.sort_values('攻击',ascending=False)
df_posion = df_posion[:10][['id','中文名','攻击']]
#3.速度前五并且属性为虫、飞行的宝可梦
df_worm = df.loc[(df['属性1'] == '虫') | (df['属性2'] == '飞行') | (df['属性1'] == '飞行') | (df['属性2'] == '虫')]
df_worm = df_worm.sort_values('速度',ascending=False)
df_worm = df_worm[:5][['id','中文名','速度']]
#4.英文名首字母为P,HP前十的宝可梦
df_HP = df.loc[(df['英文名'].str.contains('P'))]
df_HP = df_HP.sort_values('HP',ascending=False)
df_HP = df_HP[:10][['id','英文名','HP']]
# 5.特攻前十的特性狙击手的宝可梦
df_sniper = df.loc[(df['特性1'] == '狙击手') | (df['特性2'] == '狙击手') | (df['特性3'] == '狙击手')]
df_sniper = df_sniper.sort_values('特攻',ascending=False)
df_sniper = df_sniper[:10][['id','中文名','特攻']]
#6.特防、防御之和前五的地面属性的宝可梦
df_ground = df.loc[(df['属性1'] == '地面') | (df['属性2'] == '地面')]
df_ground['防御力'] = df_ground[['特防', '防御']].apply(lambda x: x["特防"] + x["防御"], axis=1)
df_ground = df_ground.sort_values('防御力', ascending=False)
df_ground = df_ground[:5][['id', '中文名', '防御力']]
数据可视化
我们提取到所需信息后,对其进行网页展示。在此需要安装与导入flask,创建网页应用。同时,将创建的网页放在项目的templates文件下,而图片放在static文件下。
代码实现,如下:
from flask import Flask
from flask import render_template
import DataC as DC
app = Flask(__name__)
#添加相应的路由函数
@app.route('/')
def index():
return render_template('index.html')
@app.route('/page4')
def page4():
#传给前端的数据,放到一个列表里传入参数中
data = []
num = 1
for index, row in DC.df_HP.iterrows():
d = []
d.append(num)
d.append(str(row['英文名']))
d.append(str(row['HP']))
image = '/static/img/' + str(row['id']) + '.png'
d.append(image)
num += 1
data.append(d)
return render_template('page4.html', data = data)
@app.route('/page5')
def page5():
data = []
num = 1
for index, row in DC.df_sniper.iterrows():
d = []
d.append(num)
d.append(str(row['中文名']))
d.append(str(row['特攻']))
image = '/static/img/' + str(row['id']) + '.png'
d.append(image)
num += 1
data.append(d)
return render_template('page5.html',data = data)
@app.route('/page6')
def page6():
data = []
num = 1
for index, row in DC.df_ground.iterrows():
d = []
d.append(num)
d.append(str(row['中文名']))
d.append(str(row['防御力']))
image = '/static/img/' + str(row['id']) + '.png'
d.append(image)
num += 1
data.append(d)
return render_template('page6.html', data=data)
if __name__ == "__main__" :
app.run()
index.html
主页
题设4
题设5
题设6
page4.html
题设四
英文名首字母为P,HP前十的宝可梦
{% for i in data %}
NO.https://blog.csdn.net/qq_56886142/article/details/{{i[0]}} https://blog.csdn.net/qq_56886142/article/details/{{i[1]}} HP: https://blog.csdn.net/qq_56886142/article/details/{{i[2]}}

{% endfor %}
返回主页
page5.html
题设五
特攻前十的特性狙击手的宝可梦
{% for i in data %}
NO.https://blog.csdn.net/qq_56886142/article/details/{{i[0]}} https://blog.csdn.net/qq_56886142/article/details/{{i[1]}}
{% endfor %}
{% for i in data %}

{% endfor %}
返回主页
page6.html
题设六
特防、防御之和前五的地面属性的宝可梦
{% for i in data %}
NO.https://blog.csdn.net/qq_56886142/article/details/{{i[0]}} https://blog.csdn.net/qq_56886142/article/details/{{i[1]}} 防御力: https://blog.csdn.net/qq_56886142/article/details/{{i[2]}}
{% endfor %}
{% for i in data %}
{% endfor %}
返回主页
宝可梦概述
大钢蛇与大岩蛇一样,也是灰色的。它的眼睛以红色为主,并且十分凶恶,尾巴类似于钉子。
死神板与死神棺同样属于与古代遗迹有关的宝可梦,不同的是它的外壳并不是金棺,而是破碎的石板。
固拉多是一只全身被红色、片状、起护甲作用的皮肤包裹着,其身体的灰色暗面,大型尖刺从各部位伸出。
念力土偶的身体是黑色的,身上有类似于未知图腾的图案。它有很多只眼睛。
大岩蛇的身体由多块巨大的灰色岩石构成,巨石连缀而成的身姿宛如大蛇。
如图,index:
page4:
page5:
page6:



