使用anaconda连接数据库,做数据清洗,并用pyecharts绘制折线图

该代码示例展示了如何使用Python的pandas和sqlalchemy模块从MySQL数据库读取数据,检查并处理空值和重复行,然后用pyecharts生成折线图进行数据可视化。
摘要由CSDN通过智能技术生成

 完整代码如下:

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")

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值