数据分析步骤
1.原始数据 ---数据量大
2.数据清洗--- 爬取的数据格式不一致,异常值,缺失值
3.分析数据--可视化
4.得出结论
内容:
1、导入模块/库
import os
import numpy as np
import pandas as pd
from pyecharts.charts import Bar,Pie,Line
# Bar 柱形图 Pie 饼图 line 折线图
# pyecharts 库作图 会生成html文件,图有交互效果
2、原始数据的获取
data=pd.read_excel(r'C:\database\ODF PS Height 线上管控Spec1.xlsx',decoding='UTF-8')
#只能读取一个文件,当有多个文件需要读取时,将文件夹中的多个文件
制作成一个列表,然后循环比遍历读取
data_list=os.listdir('.data/') #
df_all=pd.DataFrame() # 声明一个空的,为后续append进去
for i in data_list:
print(i)
df_one=pd.read_csv(f'.data/{i}',decoding='UTF-8')
print(df_all)
# df_all两次前后打印是不一样的,后边的df_all有内容得更新,内存地址一样
data_all=df_all.append(df_one,ignore_index=False)
print(df_all.shape)
df_all.info() # info() 查看数据所有信息
3、 数据清洗
#1.删除掉弹幕角色
df_all['content']=df_all['content'].str.replace((.*?),'')
df_all.head(5)
#2.统计每期中 epsiodes的出现次数(默认从大到小排序),重置索引
df_epinum=df_all['episodes'].value_counts().reset_index()
df_epinum['num']=[1,5,3,7,6,8,4,9,2,10]
df_epinum=df_epinum.sort_values['num']
df_epinum
#3根据清洗结果数据绘制可视化图表
#3-1 选取合适的数据(x,y)
x_data=df_epinum['index'].tolist()
# pandas处理的数据类型都是 series或者 DataFrame ,pyecharts作图只能利用list数据
y_data=df_epinum['episodes'].tolist()
4、绘制图形
#3根据清洗结果数据绘制可视化图表
#3-1 选取合适的数据(x,y)
x_data=df_epinum['index'].tolist()
# pandas处理的数据类型都是 series或者 DataFrame ,pyecharts作图只能利用list数据
y_data=df_epinum['episodes'].tolist()
#条形图
bar1=Bar()
bar1.add_xaxis(xaxis_data=x_data)
bar1.add_yaxis('',yaxis=y_data)
bar1.set_global_opts(title_opts=opts.TitleOpts(title='前五期的弹幕数走势图'),visualmap_opts=opts.VisualMapOpts(max=60000,is_show=False))
bar1.render() #当前目录下生成html 文件
错误集合:
# 错误集合
# OSError : Initializing from file failed
# 1.解释器比较多的时候,读取文件时指定解释器 engine=python
#2.读取时候编码问题 出现乱码