从网页抓取数据到Pandas运算,再到MySQL的大数据处理---提效率篇

前言:

在处理网络数据时,从网页抓取表格数据并分析它们是一项常见任务。这篇文章介绍一种有效的工作流程,包含数据抓取、使用Pandas进行逻辑运算,以及对于大量数据运用MySQL的策略。


抓取并保存数据

当从网页上抓取数据时,直接进行解析或运算可能引入错误且效率低下。我们推荐的方法是使用如BeautifulSoup或Pandas的read_html功能把数据原样抓取下来,然后按照所需进行处理。以下是一个简单的代码示例,展示如何用Pandas抓取网页上的表格数据。
import pandas as pd# 假设我们有一个网页URL,其中包含了我们需要抓取的表格
url = 'http://example.com/table.html'# 使用pd.read_html来读取网页上的表格数据
tables = pd.read_html(url)# 假设我们需要第一个表格
df = tables[0]
print(df.head())  # 展示表格的前几行数据

使用Pandas进行逻辑运算

对于相对较小的数据集(通常小于1GB,具体视你的内存运算能力而定),可在内存中轻松处理它们,而Pandas 是一个理想的库来执行逻辑运算。
# 举例来说,假设我们要计算某列的平均值
average_value = df['ColumnName'].mean()# 或者更复杂的逻辑,比如筛选和分组
filtered_df = df[df['ColumnName'] > threshold]
grouped_df = filtered_df.groupby('OtherColumn').sum()

大数据处理:MySQL

对于大型数据集,存储和运算通常成为问题。在这种情况下,使用关系数据库,如MySQL,进行数据处理是更加高效的。MySQL特别适用于处理大批量的数据。
import mysql.connector# 连接到MySQL数据库
conn = mysql.connector.connect(host="localhost",user="yourusername",passwd="yourpassword",database="yourdatabase"
)# 使用Pandas的to_sql方法直接将DataFrame存储到MySQL
df.to_sql('table_name', con=conn, if_exists='replace')# 关闭连接
conn.close()
如果数据表很大,您还可以选择将数据以JSON格式存储到MySQL,这对于拥有非结构化或半结构化数据的场景非常有用。
CREATE TABLE big_data (id INT AUTO_INCREMENT PRIMARY KEY,json_data JSON
);

在Python中,您可以将DataFrame转为JSON格式,并存储到MySQL中:

import json# 假设df是您的大型DataFrame
# 将DataFrame转换为JSON格式
json_records = df.to_json(orient='records')# 解析JSON字符串为JSON对象
records = json.loads(json_records)# 连接数据库并插入数据
conn = mysql.connector.connect(host="localhost",user="yourusername",passwd="yourpassword",database="yourdatabase"
)
cursor = conn.cursor()# 插入JSON数据
for record in records:sql = "INSERT INTO big_data (json_data) VALUES (%s)"val = (json.dumps(record),)cursor.execute(sql, val)conn.commit()
cursor.close()
conn.close()

总结(写在最后的忠告):

大家在干活儿的时候,得选对工具,这一点挺关键的。跟着我干了一阵子的都知道,要是数据量小,就是玩票儿大的,直接上Pandas搞定,手到擒来。但要是数据量一大,这可不是闹着玩的,特别是数据量上了GB的等级,这时候你得考虑一下MySQL这样的大件儿了。
用Pandas当然舒坦,写起来得心应手,但你别忘了,它还是得装在咱们的机子上。而MySQL呢,相比之下就是干活儿重量级的,专门为处理海量数据而生。你得学会根据工作量的大小,用对策略,找对瓶颈在哪儿。商量着来,别让一个大好的项目,因为瓶颈卡着,效率上不去。
数据处理这活儿,讲究的是巧妙和务实。选对工具,对症下药,这样子才能事半功倍,效率翻倍,还能省心。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04 LTS + CUDA12.3 + CUDNN8.9.7 + PyTorch2.1.1

简介 本文记录Ubuntu22.04长期支持版系统下的CUDA驱动和cuDNN神经网络加速库的安装,并安装PyTorch2.1.1来测试是否安装成功。 安装Ubuntu系统 如果是旧的不支持UEFI启动的主板,请参考本人博客U盘系统盘制作与系统安装(详细图解&#xff09…

1839_emacs中org-mode的代码结构

Grey 全部学习内容汇总: GitHub - GreyZhang/g_org: my learning trip for org-mode 1839_emacs中org-mode的代码结构 org-mode的代码结构主要是简单介绍一下如何让插入的代码片段具备源代码的处理属性,比如说以一定的语法进行显示、执行、被某些程序…

【探讨】bp神经网络是前馈还是后馈

目录 一、BP神经网络简介 1.1 什么是BP神经网络 1.2 BP神经网络的结构 二、BP神经网络的前馈与后馈 2.1 什么是BP神经网络的前馈 2.2 什么是BP神经网络的后馈 三、BP神经网络前馈与后馈的关系 3.1 BP神经网络前馈与后馈的区别 3.2 BP神经网络前馈与后馈的意义 四、BP…

php实现个性化域名(短网址)和个性化登录模版的解决方案

在PHP中,个性化域名通常指的是根据用户或业务需求动态生成具有特定规律的子域名。实现个性化域名的方法主要依赖于服务器配置和路由规则。下面是一些基本的步骤和考虑因素,以帮助你了解如何个性化域名,并了解这样做的好处。 如何实现个性化域…

注意力机制和自注意力机制

有很多自己的理解,仅供参考 Attention注意力机制 对于一张图片,我们第一眼看上去,眼睛会首先注意到一些重点的区域,因为这些区域可能包含更多或更重要的信息,这就是注意力机制,我们会把我们的焦点聚焦在比…

开源治理典型案例分享(汇编转)

当前,越来越多的企业申请通过信通院的开源治理成熟度评估和认证,获得增强级或先进级评估。这些企业包括中国工商银行股份有限公司、中国农业银行、上海浦东发展银行股份有限公司、中信银行股份有限公司、中国太平洋保险(集团)股份…

练练手之“四环”“磁铁”(svg)

文本是闲暇之余练习svg的运用的产物&#xff0c;记录以备有需。 <svg xmlns"http://www.w3.org/2000/svg" viewBox"0 0 500 500" width"500px" height"500px"><path d"M150,100 A50,50 0 1,1 150,99.999" stroke&q…

数据库课程设计mysql设计示例

以下是一个简单的MySQL数据库课程设计示例&#xff1a; 1.设计数据库系统 在本课程设计中&#xff0c;我们将设计一个简单的电子商务网站的数据库系统。该系统包括以下几个实体&#xff1a; 用户&#xff08;Users&#xff09;产品&#xff08;Products&#xff09;购物车&a…

MySQL笔记-第07章_单行函数

视频链接&#xff1a;【MySQL数据库入门到大牛&#xff0c;mysql安装到优化&#xff0c;百科全书级&#xff0c;全网天花板】 文章目录 第07章_单行函数1. 函数的理解1.1 什么是函数1.2 不同DBMS函数的差异1.3 MySQL的内置函数及分类 2. 数值函数2.1 基本函数2.2 角度与弧度互换…

孩子还是有一颗网安梦——Bandit通关教程:Level 8 → Level 9

&#x1f575;️‍♂️ 专栏《解密游戏-Bandit》 &#x1f310; 游戏官网&#xff1a; Bandit游戏 &#x1f3ae; 游戏简介&#xff1a; Bandit游戏专为网络安全初学者设计&#xff0c;通过一系列级别挑战玩家&#xff0c;从Level0开始&#xff0c;逐步学习基础命令行和安全概念…

docker- 部署Jenkins集成Gitlab

目录 一、部署环境 二、获取镜像 三、配置maven 四、创建挂载目录 五、启动容器 六、Jenkins 初始化 七、相关插件安装与环境配置 八、Jenkins结合Gitlab进行构建及使用Gitlab钩子 一、部署环境 工具版本Docker20.10.14Jenkins2.396Gitlab14.8.2-eeJDK8、11Maven3.6…

Echarts小问题汇总

文章目录 Echarts小问题汇总1.柱状图第一条柱子遮挡Y轴解决方法2.在大屏渲染后 拖到小屏变模糊3.相邻柱状图中间不要有空隙4.实现echarts图表自适应5.单个柱状图最大宽度 Echarts小问题汇总 记录工作中使用Echarts的遇见的一些小问题&#xff0c;后续会不断进行补充 1.柱状图…

区块链实验室(31) - 交叉编译Ethereum的客户端Geth

编译Geth到X86架构平台 下载Geth源码&#xff0c;直接编译Geth源码&#xff0c;见下图。用file命令观察编译后的文件&#xff0c;架构是x86-64。 编译Geth到Arm64架构平台 直接用命令行编译&#xff0c;同时指定期望的架构为Arm64。编译脚本如下所示。 CGO_ENABLED0 GOOSlin…

ROS-ROS通信机制-常用API

文章目录 1.初始化2.话题和服务相关对象2.1 C2.1.1发布对象2.1.2 订阅对象2.1.3 服务对象2.1.4 客户端对象 2.2 Python2.2.1 发布对象2.2.2 订阅对象2.2.3 服务对象2.2.4 客户端对象 3.回旋函数4.时间5.其他函数 1.初始化 C初始化 /** brief ROS初始化函数。** 该函数可以解析…

vxe-table 右键菜单+权限控制(v3)

1.menu-config 是用于配置右键菜单的属性。通过 menu-config 属性&#xff0c;定义右键菜单的内容、显示方式和样式。 通过 menu-config 属性配置了右键菜单&#xff0c;其中的 options 属性定义了右键菜单的选项。用户在表格中右键点击时&#xff0c;将会弹出包含这些选项的自…

flutter 顺逆时针旋转图片铺满比例区域

最近遇到一个项目需求&#xff0c;这里记录下。将图片进行顺时针旋转90和逆时针90&#xff0c;保证图片都铺满矩形框区域 import dart:async; import dart:io; import dart:math; import dart:ui as ui;import package:flutter/foundation.dart; import package:flutter/mater…

嵌入式实习难找怎么办?

今日话题&#xff0c;嵌入式实习难找怎么办&#xff1f;个人建议如果找不到实习机会&#xff0c;可以回归学习嵌入式所需的知识&#xff0c;积累项目经验或者回顾之前参与过的项目&#xff0c;将它们整理复盘。如果还有时间&#xff0c;可以再尝试找实习&#xff0c;如果找不到…

GSIL:GitHub敏感信息泄露监控工具使用

GSIL:GitHub敏感信息泄露监控工具使用 1.工具概述2.安装3.配置4.用法1.工具概述 凭据和API可能会泄露在公司的公共存储库或github公司的用户的存储库中,GSIL用于实时监控GitHub敏感信息泄露,并发送告警通知 2.安装 git clone git@github.com:FeeiCN/GSIL.git pip install …

ARM NEON加速介绍及使用示例

ARM NEON 是 ARM 架构中的SIMD (Single Instruction, Multiple Data) 扩展&#xff0c;它提供了一组专用的指令和寄存器&#xff0c;用于高效地处理并行数据。在 Linux 内核中&#xff0c;ARM NEON 驱动提供了对 NEON 寄存器和指令的支持&#xff0c;以便在内核中利用 NEON 进行…

【开题报告】基于SpringBoot的个人博客的设计与实现

1.选题背景 &#xff08;1&#xff09;技术研究需求&#xff1a; 当今社会&#xff0c;个人博客作为一种重要的网络传播形式&#xff0c;已经成为许多人记录、分享个人见解和经验的重要平台。然而&#xff0c;现有的个人博客系统在易用性、扩展性和定制化方面存在一定的局限性…