首页 > 其他分享 >大数据技术与应用课堂测试-数据清洗同步

大数据技术与应用课堂测试-数据清洗同步

时间:2024-04-09 19:56:59浏览次数:18  
标签:plt String df 数据 表中 课堂 data 清洗 name

一、 数据结构分析:

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

 

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

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

 

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

三、 数据清洗练习:

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

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

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();

    }

}

 

四、 数据分析

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

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,数据,表中,课堂,data,清洗,name
From: https://www.cnblogs.com/kk4458/p/18124668

相关文章

  • Qt使用Sqlite数据库-1(入门级)
    1.在Pro文件中加入sql资源QT+=coreguisql    这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。2.创建链接及打开数据库//包含数据库头文件#include<QSqlDatabase>#include<QSqlError>#include<QSqlQuery>//创建链接......
  • Bcdboot - Bcd 启动文件创建和修复工具。BCDEDIT - 启动配置数据存储编辑器。
    BCDBOOT/?Bcdboot-Bcd启动文件创建和修复工具。bcdboot.exe命令行工具用于将关键启动文件复制到系统分区以及创建新的系统BCD存储。bcdboot<源>[/l<区域设置>][/s<卷号>[/f<固件>]][/v]         [/vbcd][/m[{OSLoaderID}]][/addlast]......
  • 2024数据安全:超过60%组织的DLP“成熟度低”
    人是数据安全的关键变量每年,一些漏洞和零日攻击都会成为安全团队的梦靥。但除了这些技术问题之外,大多数分析人士认识到,数据通常是由用户丢失的,而不是系统漏洞和配置错误。在这些情况下,潜在的原因可能是简单的粗心大意,凭据被威胁行为者窃取,或者在极端的例子中,恶意的内部人员利......
  • 用 AI 让数据分析更智能 - Amazon Q 在 Amazon Quicksight 中的应用
    今年1月25日,亚马逊云科技(北京)区域上线了数据可视化神器–Quicksight,这是一项快速、可扩展且完全托管的商业智能(BI)服务,可以基于企业内部的数据轻松创建和发布交互式数据分析控制面板,从此企业用户可以更便捷的将亚马逊云端的数据集成第三方、本地数据进行集中分析,并更轻松的进......
  • ETL工具-nifi干货系列 第十讲 处理器RouteOnAttribute(数据流路由)
    1、今天我们一起来学习下处理器RouteOnAttribute,此处理器的作用是根据属性值进行路由进而来控制数据流的走向。类似于java中的if-else或者switch-case。如下图所示。 GenerateFlowFile产生测试数据,{"name":"Javax小金刚","id":"2"}JoltTransformJSON转换json结构:{"person":......
  • 【数据结构与算法篇】单链表及相关OJ算法题
    【数据结构与算法篇】单链表及相关OJ算法题......
  • 【专题】2023年全球数字消费者趋势调查中国篇报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35727原文出处:拓端数据部落公众号数字消费者已成为市场的重要驱动力。他们通过互联网、移动设备等渠道获取信息、购买商品、进行社交,引领着消费市场的变革。中国数字消费者具有网络普及率高、追求个性化消费体验等特点,同时也面临网络安全、数据泄......
  • R语言多元Copula GARCH 模型时间序列预测|附代码数据
    原文链接  http://tecdat.cn/?p=2623原文出处:拓端数据部落公众号 最近我们被要求撰写关于CopulaGARCH的研究报告,包括一些图形和统计输出。和宏观经济数据不同,金融市场上多为高频数据,比如股票收益率序列。直观的来说,后者是比前者“波动”更多且随机波动的序列,在一元或多元......
  • R语言改进的K-Means(K-均值)聚类算法分析股票盈利能力和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=32418原文出处:拓端数据部落公众号大量数据中具有"相似"特征的数据点或样本划分为一个类别。聚类分析提供了样本集在非监督模式下的类别划分。人们在投资时总期望以最小的风险获取最大的利益,面对庞大的股票市场和繁杂的股票数据,要想对股票进行合理......
  • 用R语言进行网站评论文本挖掘聚类|附代码数据
    原文链接:http://tecdat.cn/?p=3994原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于文本挖掘的研究报告,包括一些图形和统计输出。对于非结构化的网站中文评论信息,r的中文词频包可能是用来挖掘其潜在信息的好工具,要分析文本内容,最常见的分析方法是提取文本中的词语,并统......