使用pandas读取HTML和JSON数据

大家好,Pandas是一个功能强大的数据分析库,它提供了许多灵活且高效的方法来处理和分析数据。本文将介绍如何使用Pandas读取HTML数据和JSON数据,并展示一些常见的应用场景。

一、读取HTML网页

HTML(超文本标记语言)是一种用于创建网页的标准标记语言。网页通常由HTML标签和内容组成,这些标签描述了网页的结构和样式。在网页上,数据可以以表格、列表或其他形式展示。Pandas可以读取这些HTML数据,并将其转换为数据框,方便我们进行进一步的分析和处理。 

1.读取HTML数据

Pandas提供了一个函数read_html(),可以直接从HTML文件或URL中读取数据。下面是读取HTML数据的基本语法:

import pandas as pddata = pd.read_html('file.html')  # 从HTML文件读取数据
data = pd.read_html('http://example.com/table.html')  # 从URL读取数据

 这个函数会返回一个包含所有HTML表格的列表。每个表格都被转换为一个数据框,可以像处理其他数据框一样进行操作。

2.处理HTML数据

一旦我们将HTML数据读取到Pandas中,我们就可以使用各种方法处理和分析数据,下面是一些常见的操作。

  • 查看数据

使用head()方法可以查看数据的前几行,默认显示前5行。

print(data[0].head())  # 查看第一个表格的前5行
  •  数据清洗

HTML数据通常包含一些不需要的行或列,可以使用Pandas的数据清洗方法来删除这些数据。

clean_data = data[0].dropna()  # 删除含有NaN值的行
clean_data = clean_data.drop(columns=['Unnamed: 0'])  # 删除指定列
  • 数据转换

有时,HTML数据中的某些列可能被错误地识别为字符串,可以使用Pandas的数据转换方法将其转换为正确的数据类型。

clean_data['Price'] = clean_data['Price'].str.replace('$', '').astype(float)  # 将价格列转换为浮点数
  • 数据分析

一旦数据清洗和转换完成,就可以使用Pandas提供的各种方法进行数据分析,比如计算平均值、中位数、标准差等统计指标。

mean_price = clean_data['Price'].mean()  # 计算价格的平均值
median_price = clean_data['Price'].median()  # 计算价格的中位数
std_price = clean_data['Price'].std()  # 计算价格的标准差

 3.实际应用

下面将通过一个实际的例子来演示如何使用Pandas读取和处理HTML数据。假设要分析一个网站上的证券数据,网站上的数据以HTML表格的形式展示,可以使用Pandas读取这些数据,并进行进一步的分析。

首先,需要安装Pandas库。可以使用以下命令来安装:

pip install pandas

然后,可以使用以下代码来读取HTML数据:

import pandas as pddata = pd.read_html('http://example.com/stock.html')

接下来可以查看数据的前几行,并进行数据清洗和转换:

clean_data = data[0].dropna()
clean_data['Price'] = clean_data['Price'].str.replace('$', '').astype(float)

最后进行数据分析,并输出结果:

mean_price = clean_data['Price'].mean()
median_price = clean_data['Price'].median()
std_price = clean_data['Price'].std()print('平均价格:', mean_price)
print('中位数价格:', median_price)
print('价格标准差:', std_price)

通过这些步骤,可以轻松地读取和分析HTML数据,从而得到有关证券价格的统计指标。

二、读取JSON文件

JSON是一种常用的数据交换格式,Pandas提供了一个函数read_json(),可以直接从JSON文件或URL中读取数据。下面是读取JSON数据的基本语法:

import pandas as pddata = pd.read_json('file.json')  # 从JSON文件读取数据
data = pd.read_json('http://example.com/data.json')  # 从URL读取数据

1.处理JSON数据

一旦将JSON数据读取到Pandas中,就可以使用各种方法处理和分析数据,下面是一些常见的操作。

  • 查看数据

使用head()方法可以查看数据的前几行,默认显示前5行。

print(data.head())  # 查看数据的前5行
  • 数据清洗

在处理JSON数据时,可能会遇到一些缺失值或异常值。Pandas提供了一些方法来处理这些情况。

清除缺失值:使用dropna()方法可以删除包含缺失值的行或列。

data.dropna()  # 删除包含缺失值的行
data.dropna(axis=1)  # 删除包含缺失值的列

填充缺失值:使用fillna()方法可以将缺失值替换为指定的值。

data.fillna(0)  # 将缺失值替换为0
  • 数据转换

Pandas提供了一些方法来转换数据类型,以及对数据进行重塑和透视。

转换数据类型:使用astype()方法可以将一列数据转换为指定的数据类型。

data['column_name'].astype(int)  # 将一列数据转换为整数类型

重塑数据:使用pivot()方法可以将数据从长格式转换为宽格式。

data.pivot(index='column1', columns='column2', values='value')  # 将数据从长格式转换为宽格式
  • 数据分析

Pandas提供了丰富的方法来进行数据分析,包括数据聚合、数据排序、数据统计等。

数据聚合:使用groupby()方法可以对数据进行分组,并进行聚合操作。

data.groupby('column').sum()  # 按列进行分组,并计算每组的总和

数据排序:使用sort_values()方法可以按指定的列对数据进行排序。

data.sort_values('column')  # 按列对数据进行排序

数据统计:使用describe()方法可以计算数据的统计指标,如平均值、中位数、标准差等。

data.describe()  # 计算数据的统计指标

2.输出数据

在处理和分析数据之后,可以将结果保存为其他格式的文件,如CSV、Excel等。

  • 保存为CSV文件:使用to_csv()方法可以将数据保存为CSV文件。

data.to_csv('output.csv')  # 将数据保存为CSV文件
  • 保存为Excel文件:使用to_excel()方法可以将数据保存为Excel文件。

data.to_excel('output.xlsx')  # 将数据保存为Excel文件

综上所述,本文介绍了如何使用Pandas读取和处理HTML、JSON数据。通过Pandas的函数,可以轻松地从JSON文件或HTML中读取数据,并将其转换为DataFrame,进而使用Pandas提供的各种方法进行数据清洗、转换和分析。 

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

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

相关文章

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签:可用于在网页上绘制图形(使用 JavaScript 在网页上绘制图像)画布是一个矩形区域&#xff0c…

MATLAB R2023b for Mac 中文

MATLAB R2023b 是 MathWorks 发布的最新版本的 MATLAB,适用于进行算法开发、数据可视化、数据分析以及数值计算等任务的工程师和科学家。它包含了一系列新增功能和改进,如改进了数据导入工具,增加了对数据帧和表格对象的支持,增强…

从零到一:设计实现Dubbo分布式服务框架

从零到一:设计实现Dubbo分布式服务框架 前言 Dubbo是一款高性能的Java RPC框架,广泛应用于大规模的分布式系统。本篇博客将详细介绍如何从零开始设计和实现一个简单的Dubbo框架,以便理解Dubbo的核心概念和工作原理。 第一步:定…

医疗电子市场分析:预计2029年将达到2204亿美元

随着人口老龄化趋势日益明显,高效、精准、全面的医疗服务需求将迅速增长,医疗电子行业将迎来广阔的市场前景。医疗电子是指将电子技术和信息技术与医学相结合,应用于医疗领域的技术和产品。其主要目的是通过电子技术来实现医疗设备和系统的智…

面试150-69(Leetcode104二叉树的最大深度)

代码: 0117 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode righ…

Python | 五、面向对象、Class类

面向对象 各类事物在编程语言中可以表示为抽象的类 属性用来表示类的基本特征方法用来实现类的基本功能 为了把事物具体化,需要通过创建实例化对象来完成 Class类的定义 命名,使用大驼峰标准,如class MyName:class类中有一个self参数&…

手机上最危险的3个操作,千万小心!

普通人千万不要在手机上做这3个操作,否则你的手机早晚会被黑客入侵了。 第一种,苹果越狱 越狱虽然可以绕过限制给你的苹果安装上一些特殊软件,但只要是越狱之后的苹果手机,都将留下漏洞,黑客最喜欢寻找做过越狱的手机…

nginx离线安装

安装包准备: 上传安装包到linux系统 一、进入gcc目录,执行以下命令 rpm -Uvh *.rpm --nodeps --force gcc -v查看版本 二、 进入gcc-c目录,执行命令 rpm -Uvh *.rpm --nodeps --force g -v查看版本 三、安装PCRE 解压: t…

众和策略:券商又念“紧箍咒” 绕标套现的头疼了

又有券商对两融事务念“紧箍咒”。 近来,记者从广发证券获悉,该公司已发布《关于调整融资融券负债归还规矩的告诉》,自2024年1月15日起,决议禁止融资买入证券用于归还融券负债。 相关业内人士以为,自上一年10月融资融…

华为交换机配置NQA DNS检测IP网络DNS解析速度

华为HCIA视频教程:超级实用,华为VRP系统文件详解 华为HCIA视频教程:不会传输层协议,HCIA都考不过 华为HCIA视频教程:网络工程师的基本功:网络地址转换NAT 华为HCIP视频教程:DHCP协议原理与配…

js 正则表达式 校验 input输入框 输入格式必须为日期yyyyMM

要使用正则表达式校验 input 输入框的输入格式是否为日期格式 “yyyyMM”,你可以使用以下 JavaScript 正则表达式: const regex /^(\d{4})(\d{2})$/;这个正则表达式匹配的是四位数年份和两位数月份,确保输入的格式为 “yyyyMM”。 以下是一…

Qt-setIcon无法加载图片为图标

当使用 添加Qt资源 来添加一个图片为图标时,按照以下流程: 1、右键点击.pro工程,选择在“Explorer中显示”, 将包含图片的文件夹放在该路径下; 2、右键单击工程项目,点击Add new 3、依次选择Qt→Qt Reso…

安防视频云平台/可视化监控云平台ARM版EasyCVR无法下载录像文件,如何解决?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。GB28181视频监控/AI智能大数据视频分析EasyCVR平台已经广泛应用在工地…

网络工程师:计算机基础知识面试题(一)

48.什么是程序局部性?为什么会有程序的空间局部性? 程序局部性是指程序在执行过程中,对于数据或者指令的访问具有集中的倾向性。它可以分为时间局部性和空间局部性两种。 程序的空间局部性是指程序在一段时间内对于某一特定数据或指令的访问&…

如何使用Docker本地搭建Traefik服务并实现公网访问管理界面

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (D…

感知器学习算法和Adaline规则

一.感知器的发展过程 感知器的发展可以追溯到20世纪50年代。它是一种简单的人工神经网络模型,最早由美国心理学家和计算机科学家弗兰克罗森布拉特(Frank Rosenblatt)于1957年提出。感知器的设计灵感来源于生物神经元的工作原理,旨…

7.3 数据库的基本查询

数据库的基本查询 1. 提要2. 简单查询3. 高级查询3.1 数据分页_limit3.2 排序_order by3.3 查询去重_distinct 4. 条件查询 1. 提要 2. 简单查询 3. 高级查询 3.1 数据分页_limit 3.2 排序_order by 3.3 查询去重_distinct 4. 条件查询

街机模拟游戏逆向工程(HACKROM)教程:[3]街机的ROM与RAM

简介 在街机模拟器中运行一个街机游戏,我们除了需要一个模拟器工具 ,也需要有一个街机的ROM文件。街机的ROM文件,称之为Read-Only Memory,可以理解为只读存储器。在 ROM文件中,包括了游戏运行所需要的指令代码&#x…

Fiddler工具 — 15.Filters(过滤器)界面

1、Filters介绍 Filters:过滤器,帮助我们过滤请求。 如果需要过滤掉与测试项目无关的抓包请求,更加精准的展现抓到的请求,而不是杂乱的一堆,那功能强大的 Filters 过滤器能帮到你。 总结:Filters过滤器的…

快速了解STM32的ADC功能,从入门到精通

快速了解STM32的ADC功能,从入门到精通 快速了解STM32的ADC功能,从入门到精通 1.关于ADC输入通道与GPIO口的输入关系需要查看STM32芯片手册(p31)而非数据手册。 2.外部触发源指的是触发ADC采样的触发信号,这与1的GPIO…