亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例

 更新時(shí)間:2024年01月29日 10:14:36   作者:python慕遙  
Pandas可以直接讀取html和JSON數(shù)據(jù),本文就來(lái)介紹一下pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的可以了解一下

Pandas是一個(gè)功能強(qiáng)大的數(shù)據(jù)分析庫(kù),它提供了許多靈活且高效的方法來(lái)處理和分析數(shù)據(jù)。本文將介紹如何使用Pandas讀取HTML數(shù)據(jù)和JSON數(shù)據(jù),并展示一些常見(jiàn)的應(yīng)用場(chǎng)景。

一、讀取HTML網(wǎng)頁(yè)

HTML(超文本標(biāo)記語(yǔ)言)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。網(wǎng)頁(yè)通常由HTML標(biāo)簽和內(nèi)容組成,這些標(biāo)簽描述了網(wǎng)頁(yè)的結(jié)構(gòu)和樣式。在網(wǎng)頁(yè)上,數(shù)據(jù)可以以表格、列表或其他形式展示。Pandas可以讀取這些HTML數(shù)據(jù),并將其轉(zhuǎn)換為數(shù)據(jù)框,方便我們進(jìn)行進(jìn)一步的分析和處理。 

1.讀取HTML數(shù)據(jù)

Pandas提供了一個(gè)函數(shù)read_html(),可以直接從HTML文件或URL中讀取數(shù)據(jù)。下面是讀取HTML數(shù)據(jù)的基本語(yǔ)法:

import pandas as pd

data = pd.read_html('file.html')  # 從HTML文件讀取數(shù)據(jù)
data = pd.read_html('http://example.com/table.html')  # 從URL讀取數(shù)據(jù)

 這個(gè)函數(shù)會(huì)返回一個(gè)包含所有HTML表格的列表。每個(gè)表格都被轉(zhuǎn)換為一個(gè)數(shù)據(jù)框,可以像處理其他數(shù)據(jù)框一樣進(jìn)行操作。

2.處理HTML數(shù)據(jù)

一旦我們將HTML數(shù)據(jù)讀取到Pandas中,我們就可以使用各種方法處理和分析數(shù)據(jù),下面是一些常見(jiàn)的操作。

  • 查看數(shù)據(jù)

使用head()方法可以查看數(shù)據(jù)的前幾行,默認(rèn)顯示前5行。

print(data[0].head())  # 查看第一個(gè)表格的前5行
  •  數(shù)據(jù)清洗

HTML數(shù)據(jù)通常包含一些不需要的行或列,可以使用Pandas的數(shù)據(jù)清洗方法來(lái)刪除這些數(shù)據(jù)。

clean_data = data[0].dropna()  # 刪除含有NaN值的行
clean_data = clean_data.drop(columns=['Unnamed: 0'])  # 刪除指定列
  • 數(shù)據(jù)轉(zhuǎn)換

有時(shí),HTML數(shù)據(jù)中的某些列可能被錯(cuò)誤地識(shí)別為字符串,可以使用Pandas的數(shù)據(jù)轉(zhuǎn)換方法將其轉(zhuǎn)換為正確的數(shù)據(jù)類(lèi)型。

clean_data['Price'] = clean_data['Price'].str.replace('$', '').astype(float)  # 將價(jià)格列轉(zhuǎn)換為浮點(diǎn)數(shù)
  • 數(shù)據(jù)分析

一旦數(shù)據(jù)清洗和轉(zhuǎn)換完成,就可以使用Pandas提供的各種方法進(jìn)行數(shù)據(jù)分析,比如計(jì)算平均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計(jì)指標(biāo)。

mean_price = clean_data['Price'].mean()  # 計(jì)算價(jià)格的平均值
median_price = clean_data['Price'].median()  # 計(jì)算價(jià)格的中位數(shù)
std_price = clean_data['Price'].std()  # 計(jì)算價(jià)格的標(biāo)準(zhǔn)差

 3.實(shí)際應(yīng)用

下面將通過(guò)一個(gè)實(shí)際的例子來(lái)演示如何使用Pandas讀取和處理HTML數(shù)據(jù)。假設(shè)要分析一個(gè)網(wǎng)站上的證券數(shù)據(jù),網(wǎng)站上的數(shù)據(jù)以HTML表格的形式展示,可以使用Pandas讀取這些數(shù)據(jù),并進(jìn)行進(jìn)一步的分析。

首先,需要安裝Pandas庫(kù)??梢允褂靡韵旅顏?lái)安裝:

pip install pandas

然后,可以使用以下代碼來(lái)讀取HTML數(shù)據(jù):

import pandas as pd

data = pd.read_html('http://example.com/stock.html')

接下來(lái)可以查看數(shù)據(jù)的前幾行,并進(jìn)行數(shù)據(jù)清洗和轉(zhuǎn)換:

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

最后進(jìn)行數(shù)據(jù)分析,并輸出結(jié)果:

mean_price = clean_data['Price'].mean()
median_price = clean_data['Price'].median()
std_price = clean_data['Price'].std()

print('平均價(jià)格:', mean_price)
print('中位數(shù)價(jià)格:', median_price)
print('價(jià)格標(biāo)準(zhǔn)差:', std_price)

通過(guò)這些步驟,可以輕松地讀取和分析HTML數(shù)據(jù),從而得到有關(guān)證券價(jià)格的統(tǒng)計(jì)指標(biāo)。

二、讀取JSON文件

JSON是一種常用的數(shù)據(jù)交換格式,Pandas提供了一個(gè)函數(shù)read_json(),可以直接從JSON文件或URL中讀取數(shù)據(jù)。下面是讀取JSON數(shù)據(jù)的基本語(yǔ)法:

import pandas as pd

data = pd.read_json('file.json')  # 從JSON文件讀取數(shù)據(jù)
data = pd.read_json('http://example.com/data.json')  # 從URL讀取數(shù)據(jù)

1.處理JSON數(shù)據(jù)

一旦將JSON數(shù)據(jù)讀取到Pandas中,就可以使用各種方法處理和分析數(shù)據(jù),下面是一些常見(jiàn)的操作。

  • 查看數(shù)據(jù)

使用head()方法可以查看數(shù)據(jù)的前幾行,默認(rèn)顯示前5行。

print(data.head())  # 查看數(shù)據(jù)的前5行
  • 數(shù)據(jù)清洗

在處理JSON數(shù)據(jù)時(shí),可能會(huì)遇到一些缺失值或異常值。Pandas提供了一些方法來(lái)處理這些情況。

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

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

填充缺失值:使用fillna()方法可以將缺失值替換為指定的值。

data.fillna(0)  # 將缺失值替換為0
  • 數(shù)據(jù)轉(zhuǎn)換

Pandas提供了一些方法來(lái)轉(zhuǎn)換數(shù)據(jù)類(lèi)型,以及對(duì)數(shù)據(jù)進(jìn)行重塑和透視。

轉(zhuǎn)換數(shù)據(jù)類(lèi)型:使用astype()方法可以將一列數(shù)據(jù)轉(zhuǎn)換為指定的數(shù)據(jù)類(lèi)型。

data['column_name'].astype(int)  # 將一列數(shù)據(jù)轉(zhuǎn)換為整數(shù)類(lèi)型

重塑數(shù)據(jù):使用pivot()方法可以將數(shù)據(jù)從長(zhǎng)格式轉(zhuǎn)換為寬格式。

data.pivot(index='column1', columns='column2', values='value')  # 將數(shù)據(jù)從長(zhǎng)格式轉(zhuǎn)換為寬格式
  • 數(shù)據(jù)分析

Pandas提供了豐富的方法來(lái)進(jìn)行數(shù)據(jù)分析,包括數(shù)據(jù)聚合、數(shù)據(jù)排序、數(shù)據(jù)統(tǒng)計(jì)等。

數(shù)據(jù)聚合:使用groupby()方法可以對(duì)數(shù)據(jù)進(jìn)行分組,并進(jìn)行聚合操作。

data.groupby('column').sum()  # 按列進(jìn)行分組,并計(jì)算每組的總和

數(shù)據(jù)排序:使用sort_values()方法可以按指定的列對(duì)數(shù)據(jù)進(jìn)行排序。

data.sort_values('column')  # 按列對(duì)數(shù)據(jù)進(jìn)行排序

數(shù)據(jù)統(tǒng)計(jì):使用describe()方法可以計(jì)算數(shù)據(jù)的統(tǒng)計(jì)指標(biāo),如平均值、中位數(shù)、標(biāo)準(zhǔn)差等。

data.describe()  # 計(jì)算數(shù)據(jù)的統(tǒng)計(jì)指標(biāo)

2.輸出數(shù)據(jù)

在處理和分析數(shù)據(jù)之后,可以將結(jié)果保存為其他格式的文件,如CSV、Excel等。

  • 保存為CSV文件:使用to_csv()方法可以將數(shù)據(jù)保存為CSV文件。

data.to_csv('output.csv')  # 將數(shù)據(jù)保存為CSV文件
  • 保存為Excel文件:使用to_excel()方法可以將數(shù)據(jù)保存為Excel文件。

data.to_excel('output.xlsx')  # 將數(shù)據(jù)保存為Excel文件

補(bǔ):Pandas中讀取JSON文件時(shí)出現(xiàn)ValueError的解決方法

問(wèn)題描述

當(dāng)我們使用Pandas的read_json函數(shù)讀取JSON文件時(shí),有時(shí)會(huì)遇到如下的ValueError錯(cuò)誤:

ValueError: Trailing data

這個(gè)錯(cuò)誤的原因是讀取的JSON文件在最后面有一些額外的括號(hào)或分隔符等數(shù)據(jù)。

例如,在下面的JSON文件中,我們會(huì)發(fā)現(xiàn)最后多了一個(gè)逗號(hào):

{
    "name": "John",
    "age": 30,
    "city": "New York",
}

如果我們將該文件使用Pandas的read_json函數(shù)讀取,就會(huì)產(chǎn)生上述的ValueError錯(cuò)誤。

解決方法

1. 修改JSON文件

最簡(jiǎn)單的方法是修改JSON文件,將多余的逗號(hào)或括號(hào)刪除。對(duì)于大的JSON文件,可以使用專(zhuān)業(yè)的JSON編輯器進(jìn)行編輯。對(duì)于小的JSON文件,我們可以手動(dòng)將多余的逗號(hào)或括號(hào)刪除,并保存修改后的文件。

2. 設(shè)置read_json函數(shù)的參數(shù)

除了修改JSON文件,我們也可以通過(guò)設(shè)置read_json函數(shù)的參數(shù)來(lái)解決這個(gè)問(wèn)題。具體來(lái)說(shuō),我們需要使用以下兩個(gè)參數(shù):

  • lines=True:將文件解析成多行模式,每行都是一個(gè)單獨(dú)的JSON對(duì)象。
  • orient='records':將JSON對(duì)象轉(zhuǎn)換為記錄的列表形式。

例如,下面是一個(gè)使用這兩個(gè)參數(shù)解決問(wèn)題的示例:

import pandas as pd

df = pd.read_json('file.json', lines=True, orient='records')

這里,我們將一個(gè)包含多個(gè)JSON對(duì)象的JSON文件讀取為一個(gè)DataFrame對(duì)象。如果想要將每個(gè)JSON對(duì)象都讀取為一個(gè)單獨(dú)的DataFrame對(duì)象,可以使用下面的方法:

import pandas as pd

with open('file.json') as f:
    for line in f:
        df = pd.read_json(line, orient='records')

這個(gè)方法是逐行讀取JSON文件,并將每行解析為單獨(dú)的DataFrame對(duì)象。這樣可以避免多余的逗號(hào)或括號(hào)造成的ValueError錯(cuò)誤。

綜上所述,本文介紹了如何使用Pandas讀取和處理HTML、JSON數(shù)據(jù)。通過(guò)Pandas的函數(shù),可以輕松地從JSON文件或HTML中讀取數(shù)據(jù),并將其轉(zhuǎn)換為DataFrame,進(jìn)而使用Pandas提供的各種方法進(jìn)行數(shù)據(jù)清洗、轉(zhuǎn)換和分析。 

到此這篇關(guān)于pandas讀取HTML和JSON數(shù)據(jù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)pandas讀取HTML和JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django和Flask框架優(yōu)缺點(diǎn)對(duì)比

    Django和Flask框架優(yōu)缺點(diǎn)對(duì)比

    這篇文章主要介紹了Django和Flask框架相關(guān)對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python字符串函數(shù)strip()原理及用法詳解

    Python字符串函數(shù)strip()原理及用法詳解

    這篇文章主要介紹了Python字符串函數(shù)strip()原理及用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python處理RSTP視頻流過(guò)程解析

    python處理RSTP視頻流過(guò)程解析

    這篇文章主要介紹了python處理RSTP視頻流過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python?numpy.transpose使用詳解

    Python?numpy.transpose使用詳解

    本文主要介紹了Python?numpy.transpose使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python之wxPython應(yīng)用實(shí)例

    python之wxPython應(yīng)用實(shí)例

    這篇文章主要介紹了python之wxPython應(yīng)用實(shí)例,以加載圖片為例講述了wxPython的用法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 使用python如何實(shí)現(xiàn)泛型函數(shù)

    使用python如何實(shí)現(xiàn)泛型函數(shù)

    這篇文章主要介紹了使用python如何實(shí)現(xiàn)泛型函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python 3.74 運(yùn)行import numpy as np 報(bào)錯(cuò)lib\site-packages\numpy\__init__.py

    python 3.74 運(yùn)行import numpy as np 報(bào)錯(cuò)lib\site-packages\numpy\_

    這篇文章主要介紹了python 3.74 運(yùn)行import numpy as np 報(bào)錯(cuò)lib\site-packages\numpy\__init__.py,原來(lái)需要更新一下numpy即可
    2019-10-10
  • python基于pyppeteer制作PDF文件

    python基于pyppeteer制作PDF文件

    這篇文章主要介紹了python基于pyppeteer制作PDF文件的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 淺談Python中copy()方法的使用

    淺談Python中copy()方法的使用

    這篇文章主要介紹了淺談Python中copy()方法的使用,Python中的拷貝分為潛拷貝和深拷貝,本文只是簡(jiǎn)單介紹用法,需要的朋友可以參考下
    2015-05-05
  • django的autoreload機(jī)制實(shí)現(xiàn)

    django的autoreload機(jī)制實(shí)現(xiàn)

    這篇文章主要介紹了django的autoreload機(jī)制實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論