大数据大作业

原文链接

1、数据集

  1. Google游戏
  2. 医用口罩😷检测数据集

本次实验用到的资料以及产出
ps:(木有了 o(╥﹏╥)o,又活了,这次是永久链接,不过希望先看一下README.md文档 )
链接:https://pan.baidu.com/s/1PaspMAYXs7YP2t5UTfyFUA?pwd=r78g
提取码:r78g

2、通过jupyter进行数据分析

安装jupyter

更新pip

pip install --upgrade pip

安装jupyter

pip install jupyter

启动jupyter终端服务

jupyter notebook

浏览器中打开:http://localhost:8088
在这里插入图片描述

新建terminal

点击new->Python 3
在这里插入图片描述

开始写代码

前期准备

导入必要的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

导入数据集

df = pd.read_csv("file_name.csv")

查看数据前五行

df.head(5)

处理数据

检查行数和列数

df.shape

检查每个列的数据类型

df.dtypes

如果觉得哪个数据类型很奇怪可以进一步检测

type(df['column_name'][0])

将日期列从对象转换成日期时间(obj->datetime)

df['Date'] = pd.to_datetime(df['Date']) #Date是日期列名

检测修改结果

df.dtypes

检测是否有缺失值

df.info()

注意在Keywords,在10,000行中,只有7,528行包含Keywords列中的对象。这意味着大约有2500个缺失值。这意味着这些文章没有关键词。请记住这一点,因为在讨论数据分析时,我们需要包括这一点。

检测是否有重复数据

df.duplicated()

探索与可视化数据——Plotly

Plotly相关blog

安装

pip install plotly

使用

导入必要包
from plotly.graph_objs import Scatter,Layout
import plotly
import plotly.offline as py
import numpy as np
import plotly.graph_objs as go

#setting offilne(设置为离线模式)
plotly.offline.init_notebook_mode(connected=True)
实例
饼图

导包

import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot

获取数据
关于values的求法:

values=[0,0,0,0,0]
for i in df['最大生命']:
    if i>9000:values[4]+=1
    elif i>8000:values[3]+=1
    elif i>7000:values[2]+=1
    elif i>6000:values[1]+=1
    else:values[0]+=1

绘图

labels=['5k~6k','6k~7k','7k~8k','8k~9k','9k~10k']
values=[28, 19, 12, 9, 1]	#用遍历求出来,贴在下面了
trace=[go.Pie(
    labels=labels,
    values=values,
    hole=0.7,   #控制环形中心空白大小
    hoverinfo='label+percent'       #hoverinfo属性用于控制当用户将鼠标指针放到环形图上时,显示的内容
)]
layout=go.Layout(
    title='英雄最高血量图',
)
fig=go.Figure(data=trace,layout=layout)
pyplt(fig,filename='环形饼图.html')

在这里插入图片描述

直方图
#绘制英雄-初始生命列
trace0 = go.Bar(
    x = list(df['英雄']),
    y = list(df['初始生命']),
    name = 'initHP',
    marker=dict(
        color = 'rgb(236, 114, 89)'
    )
)

#绘制英雄-初始物攻列
trace1 = go.Bar(
    x = list(df['英雄']),
    y = list(df['初始物攻']),
    name = 'initAP',
    marker=dict(
        color = 'rgb(245, 245, 245)'
    )
)
#整合整个数据
data = [trace0,trace1]

#不知道干什么用的,反正作为了下面的一个参数
layout=go.Layout(
    title='英雄初始属性',
)
#生成了一个fig对象
fig=go.Figure(data=data,layout=layout)

#生成html文件
pyplt(fig,filename='英雄初始属性.html')

在这里插入图片描述
在这里插入图片描述

词云
#获取所有英雄名
str = ''.join(df['英雄'])
resultStr = ''
for i in str:
    resultStr += i+' '
#将resultStr写入(可以不用)
'''
fo=open("heroName.txt","w")
fo.writelines(resultStr)
fo.close()
'''
#做词云操作
from wordcloud import WordCloud
from matplotlib import pyplot as plt
font = r'C:\Windows\Fonts\FZSTK.TTF'
wc = WordCloud(font_path=font, #如果是中文必须要添加这个,否则会显示成框框
               background_color='white',
               width=2000,
               height=1000,
               ).generate(resultStr)

plt.imshow(wc)  #用plt显示图片
plt.axis('off') #不显示坐标轴
plt.show() #显示图片

结果:
在这里插入图片描述

横着的直方图
maxValue = {}
#去除无法去最值的列
columns = [i for i in list(df.columns) if i not in ['英雄','攻击范围','主要定位','次要定位 ']]

#创建属性:(英雄名,最值)的字典
for i in columns:
    maxValue[i] = (df['英雄'][list(df[i]).index(max(df[i]))],max(df[i]))

maxValueArr = []
for i in list(maxValue.values()):
    maxValueArr.append(i[1])
#开始绘图
import plotly as py
import plotly.graph_objs as go
pyplt=py.offline.plot

data=[go.Bar(
	x=maxValueArr,
	y=list(maxValue.keys()),
	orientation= 'h')]

layout=go.Layout(
	title= '稀有金属期货持仓量对比图'
)
figure= go.Figure(data = data, layout =layout)
pyplt(figure, filename='tmp/1.html')#必须要先有tmp文件夹才可以

在这里插入图片描述

世界地图

参考文献

  • https://www.cnblogs.com/zxfei/p/12255207.html
  • https://www.freesion.com/article/9050642350/
  • https://pyecharts.org/#/
  • https://www.jb51.net/article/183455.htm
  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值