完整代码如下:
import pandas as pd
# 导入sqlalchemy模块,创建连接
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://root:root'
'@127.0.0.1:3306/management_system')
df = pd.read_sql('sitestats', engine)
df
if pd.isnull(df).values.any():
print("存在空值")
else:
print("没有空值")
# 填充缺失值,填充相同的值
df.fillna(0)
# 从前向后查找和判断是否有重复值
if df.duplicated().sum() > 0:
print("存在重复行")
# 删除重复行
df.drop_duplicates()
else:
print("不存在重复行")
# dropna()删除含有空值或缺失值的行或者列
df.dropna()
data = df
data
from pyecharts.charts import Line
from pyecharts import options as opts
x_data = data["date"].values.tolist()
y_data1 = data["page_view"].values.tolist()
y_data2 = data["registered_number"].values.tolist()
y_data3 = data["downloads"].values.tolist()
line = (
Line()
.add_xaxis(x_data)
.add_yaxis("页面浏览量", y_data1)
.add_yaxis("注册人数", y_data2)
.add_yaxis("下载次数", y_data3)
.set_global_opts(
title_opts=opts.TitleOpts(title="网站数据统计"),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
)
)
line.render("网站数据统计折线图-数据库.html")
清洗结果和数据列表:
pyecharts图表:
代码详细说明:
首先,我们导入所需的Python模块,包括pandas
用于数据处理和sqlalchemy
用于数据库连接。
import pandas as pd
# 导入sqlalchemy模块,创建连接
from sqlalchemy import create_engine
创建数据库连接引擎:使用create_engine
函数创建一个连接到MySQL数据库的引擎对象engine
。连接字符串指定了数据库的类型(mysql
),主机名(127.0.0.1
),端口号(3306
),数据库名(management_system
),以及用户名和密码(root:root
)。
engine = create_engine('mysql+mysqlconnector://root:root'
'@127.0.0.1:3306/management_system')
使用pd.read_sql
函数从数据库中读取sitestats
表的数据,并将结果存储在df
变量中。这里假设数据库中已经创建了名为sitestats
的表。
df = pd.read_sql('sitestats', engine)
df
检查数据中是否存在空值:使用pd.isnull(df).values.any()
函数检查DataFrame中是否存在空值。如果存在空值,打印"存在空值";否则打印"没有空值"。
if pd.isnull(df).values.any():
print("存在空值")
else:
print("没有空值")
填充缺失值:使用df.fillna(0)
函数将DataFrame中的空值填充为0。
# 填充缺失值,填充相同的值
df.fillna(0)
检查是否存在重复行:使用df.duplicated().sum() > 0
判断DataFrame中是否存在重复行。如果存在重复行,打印"存在重复行";否则打印"不存在重复行"。
删除重复行:如果存在重复行,使用df.drop_duplicates()
函数删除DataFrame中的重复行。
# 从前向后查找和判断是否有重复值
if df.duplicated().sum() > 0:
print("存在重复行")
# 删除重复行
df.drop_duplicates()
else:
print("不存在重复行")
删除含有空值的行或列:使用df.dropna()
函数删除DataFrame中含有空值的行或列。
# dropna()删除含有空值或缺失值的行或者列
df.dropna()
data = df
data
创建图表并保存为HTML文件:使用pyecharts
库创建折线图。将日期、页面浏览量、注册人数和下载次数分别作为x轴、y轴的数据。通过设置图表的全局选项,如标题和提示信息等。最后使用line.render
方法将图表保存为指定文件名的HTML文件,这里保存为"数据统计折线图-数据库.html"。
from pyecharts.charts import Line
from pyecharts import options as opts
x_data = data["date"].values.tolist()
y_data1 = data["page_view"].values.tolist()
y_data2 = data["registered_number"].values.tolist()
y_data3 = data["downloads"].values.tolist()
line = (
Line()
.add_xaxis(x_data)
.add_yaxis("页面浏览量", y_data1)
.add_yaxis("注册人数", y_data2)
.add_yaxis("下载次数", y_data3)
.set_global_opts(
title_opts=opts.TitleOpts(title="网站数据统计"),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
)
)
line.render("数据统计折线图-数据库.html")