首页 > 其他分享 >3.2每日总结

3.2每日总结

时间:2024-03-02 16:45:48浏览次数:23  
标签:总结 plt String df 每日 3.2 表中 data name

石家庄铁道大学2024年春季

  2022 级课堂测试试卷—数据同步练习

课程名称:大数据库技术与应用  任课教师:王建民  考试时间: 120 分钟 

 

一、     数据结构分析:

(1)京津冀三省的2015年度的科技成果数据原始表,为Access数据库,;

 

(2)要求将三省的科技成果数据汇总到同一表中(要求结果表为MySql数据表);

(3)三个原始数据表结构不一致,要求结果表中包括所有的字段,表达意思相同或相似的字段要进行合并,不允许丢失字段(若只有本表独有字段,在结果表中其他两表数据在该字段填入空值)。

二、     数据同步练习:要求采编程实现三个原始表数据同步功能,将三个表的数据同步到一个结果表中。

三、    数据清洗练习:

(1)重复记录清洗,分析结果表中是否存在重复的数据记录,主要是地域和成果名称相同即判定为重复记录,保留一条记录,并补充其他重复记录中独有的数据字段内容,再删除其余记录。

(2)在结果表中追加年份和地域两个标准维度字段,如果原始表中存在该字段则直接转化成维度字段,若不存在则根据单位名称确定地域字段内容,天津科技成果表中不存在年度字段,则直接将年度维度字段确定为2015年。

四、   数据分析:

根据提供的已知字段名称,自动将科技成果分类,并且分析京津冀三地的科技优势。

五、   将最终的MySQL数据表导入,放入源程序,将文件夹命名为为班级学号姓名提交。

 

1.汇总表:

 2.数据清洗:

代码:

import java.sql.*;

public class thedataqingxi {

    public static void main(String[] args) {
        // 数据库连接信息
        String url = "jdbc:mysql://localhost:3306/2024.2.28test";
        String username = "root";
        String password = "123456";

        try {
            // 连接数据库
            Connection connection = DriverManager.getConnection(url, username, password);

            // 执行数据清洗操作
            cleanData(connection);

            // 关闭数据库连接
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    private static void cleanData(Connection connection) throws SQLException {
        // SQL查询语句,查找重复记录并保留一条
        String findDuplicatesSQL = "SELECT MIN(ID) as minID, name, danwei " +
                "FROM huizongbiao " +
                "GROUP BY name, danwei " +
                "HAVING COUNT(*) > 1";

        // SQL删除语句,删除除最小ID外的重复记录
        String deleteDuplicatesSQL = "DELETE FROM huizongbiao WHERE ID <> ? AND name = ? AND danwei = ?";

        // 执行查询
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(findDuplicatesSQL);

        // 遍历查询结果
        while (resultSet.next()) {
            int minID = resultSet.getInt("minID");
            String name = resultSet.getString("name");
            String danwei = resultSet.getString("danwei");

            // 执行删除操作
            PreparedStatement preparedStatement = connection.prepareStatement(deleteDuplicatesSQL);
            preparedStatement.setInt(1, minID);
            preparedStatement.setString(2, name);
            preparedStatement.setString(3, danwei);

            preparedStatement.executeUpdate();
            preparedStatement.close();
        }

        // 关闭Statement和ResultSet
        statement.close();
        resultSet.close();
    }
}

  

 3.导出csv文件:

 4.数据分析展示:

import pandas as pd
import matplotlib.pyplot as plt

# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 读取CSV文件
df = pd.read_csv('huizongbiao.csv')

# 按地区分组并计算各地区的应用行业占比
hebei_data = df[df['shengshiqu'] == '河北']
beijing_data = df[df['shengshiqu'] == '北京']
tianjin_data = df[df['shengshiqu'] == '天津']

def plot_pie_and_bar(data, title):
    # 计算应用行业占比
    industry_counts = data['yingyonghangye'].value_counts()

    # 只保留前五,其余用"其他"代指
    top_industries = industry_counts.head(5)
    other_count = industry_counts[5:].sum()
    top_industries['其他'] = other_count

    total_count = len(data)
    industry_percentages = top_industries / total_count * 100

    # 绘制饼状图
    plt.figure(figsize=(10, 6))
    plt.subplot(1, 2, 1)
    plt.pie(industry_percentages, labels=industry_percentages.index, autopct='%1.1f%%', startangle=140)
    plt.title(f'{title} - 行业占比')

    # 绘制柱状图
    plt.subplot(1, 2, 2)
    top_industries.plot(kind='bar')
    plt.title(f'{title} - 行业分布 (前五)')
    plt.xlabel('应用行业')
    plt.ylabel('数量')

    plt.tight_layout()
    plt.show()

# 绘制河北地区的图表
plot_pie_and_bar(hebei_data, '河北')

# 绘制北京地区的图表
plot_pie_and_bar(beijing_data, '北京')

# 绘制天津地区的图表
plot_pie_and_bar(tianjin_data, '天津')

  

 

 

 

 

标签:总结,plt,String,df,每日,3.2,表中,data,name
From: https://www.cnblogs.com/2351920019xin/p/18048803

相关文章

  • Living-Dream 周考总结 第3期
    Link,第四场没打。T1\(100\),没挂分。\(\operatorname{lcm}(x,y)=\dfrac{x}{\gcd(x,y)}\timesy\)#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;signedmain(){ //freopen("as01.in","r",stdin); //freopen("as0......
  • Living-Dream 周考总结 第4期
    Link。T1\(100\),没挂分。依题计算即可。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;signedmain(){ //freopen("as01.in","r",stdin); //freopen("as01.out","w",stdout); ios::sync_with_stdio(0); ......
  • Living-Dream 周考总结 第1期
    Link。T1依题计算即可,\(O(1)\)。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;signedmain(){ ios::sync_with_stdio(0); doublen;cin>>n,n=ceil(n/5.0); cout<<setprecision(2)<<fixed; if(n<=100)cout<<0.58......
  • Living-Dream 周考总结 第2期
    Link,第二场没打。T1\(100\),没挂分。依题计算即可,\(O(1)\)。#include<bits/stdc++.h>usingnamespacestd;doublen,a,b;intmain(){ //freopen("as01.in","r",stdin); //freopen("as01.out","w",stdout); cin>>n>&......
  • 苍穹外卖总结(未完结)
    1.如果套餐库存为0或者套餐下架业务逻辑是什么样呢?套餐库存为0的业务逻辑:下单失败:当用户下单时,系统可以检查套餐的库存,如果库存为0,则拒绝生成订单,返回给用户相应的提示,如“库存不足”或“该套餐已售罄”。套餐下架的业务逻辑:阻止下单:当套餐下架时,用户下单时不会查询到已......
  • 《手动学习深度学习》3.2和3.3的代码对比
    3.2线性回归的从零开始这是我的第一个代码,也算是属于自己的helloworld了,特此纪念,希望继续努力。代码中引入了3.1中的计时模块,用来对比训练时间。importrandomimporttorchfromd2limporttorchasd2limportsyssys.path.append("..")fromtimerimport......
  • WOC总结
    WOC总结有感1.总结一下WOC以及我的分工​ 这个项目主要是完成对SastWiki这个网站的模拟编写,通过前后端分离的方式搓出这个网站​ 我是Web组的,负责用户管理的要求,包括登录,注册,用户相关的数据库管理,权限的管理2.讲讲自己学到了什么​ 1.刚学C#,算是对这门语言更加深入了(包括Lin......
  • 我的闲鱼Python爬虫接单总结和经验,最高600元一单
    最近,我在闲鱼上利用Python爬虫技术接了一些任务,想必你一定好奇,通过这样的方式,到底能不能挣钱,能挣多少钱?今天我就来分享一下我的经验和总结。一、接单经历之前Vue的作者尤大在微博上说被动收入是最能带来自由的东西,这个时代的程序员其实在创造被动收入上有天然优势,然而大......
  • Python函数每日一讲 - help函数的使用与实践
    引言今天周五,我们来看一个简单又熟悉的函数help(),help()函数就是Python中一个非常有用的工具,它能够帮助我们快速查找和理解Python中的各种函数、模块和对象的用法和功能。语句概览help()函数是Python内置函数之一,用于获取帮助信息。其语法格式如下:help([object])其中,object......
  • Qt QModbus相关类实现ModbusTcpServer总结
    在疫情环境下催生出了很多的无人或者减少人员接触的项目,比如无人智慧餐厅项目中的无人送餐项目,主要是由送餐小车和一个中控屏和部分协助发餐的设备组成,由于餐厅一般的范围不会很大,考虑到Wi-Fi通信可能比较麻烦,我们前期组网协议使用的是zigbee,这样的话小车可以无网络运行且待......