哈嘍大家好,我是咸魚
相信小伙伴們在學習 python 資料分析的程序中或多或少都會聽說或者使用過 pandas
pandas 是 python 的一個拓展庫,常用于資料分析
今天咸魚將介紹幾個關于 pandas 匯入資料的方法和技巧
從 URL 獲取 csv 資料
關于 pandas 匯入 csv 資料,使用的是下面這個方法
pandas.read_csv()
但是這個方法可以通過 HTTP 從 URL 來獲取 CSV 資料
關于通過 HTTP 從 URL 來獲取 CSV 資料,我在之前的文章《為什么訪問同一個網址卻回傳不同的內容》有介紹過
例如下面的例子將展示如何通過 URL 獲取 csv 檔案
url = 'https://raw.githubusercontent.com/scikit-learn/scikit-learn/main/sklearn/datasets/data/boston_house_prices.csv'
df = pandas.read_csv(url)
通過 URL 來獲取 CSV 資料,可以省去了需要先將 CSV 檔案保存在本地這一步驟
從網站獲取 HTML table 資料
pandas.read_html()
用于獲取 HTML 檔案中的 table 資料(即<table>
標簽的表格資料)
我們看下面的例子
import pandas as pd
url = 'http://weather.sina.com.cn/china/shanghaishi/'
df_tables = pd.read_html(url)
print(df_tables)
通過 pandas.read_html()
可以實作簡易爬蟲
JSON 資料格式化
有時候我們在處理 JSON 資料的時候,會發現 JSON 資料通常都是嵌套好多層
如果我們想要將 JSON 資料轉換成表格資料,使其扁平化,我們可以用下面的方法來實作
pandas.json_normalize()
看下面的例子
impor pandas as pd
data =https://www.cnblogs.com/edisonfish/archive/2023/05/29/[
{"id": "A001",
"name": "咸魚運維雜談",
"url": "https://www.cnblogs.com/edisonfish/",
"likes": 61
},
{
"id": "A002",
"name": "Google",
"url": "www.google.com",
"likes": 124
},
{
"id": "A003",
"name": "淘寶",
"url": "www.taobao.com",
"likes": 45
}
]
df = pd.json_normalize(data)
print(df)
結果如下
id name url likes
0 A001 咸魚運維雜談 https://www.cnblogs.com/edisonfish/ 61
1 A002 Google www.google.com 124
2 A003 淘寶 www.taobao.com 45
接下來,讓我們嘗試讀取更復雜的 JSON 資料,該資料嵌套了串列和字典
import pandas as pd
data =https://www.cnblogs.com/edisonfish/archive/2023/05/29/{"school_name": "local primary school",
"class": "Year 1",
"info": {
"president": "John Kasich",
"address": "ABC road, London, UK",
"contacts": {
"email": "[email protected]",
"tel": "123456789"
}
},
"students": [
{
"id": "A001",
"name": "Tom",
"math": 60,
"physics": 66,
"chemistry": 61
},
{
"id": "A002",
"name": "James",
"math": 89,
"physics": 76,
"chemistry": 51
},
{
"id": "A003",
"name": "Jenny",
"math": 79,
"physics": 90,
"chemistry": 78
}]
}
# 展平資料
df = pd.json_normalize(
data,
record_path =['students'],
meta=[
'class',
['info', 'president'],
['info', 'contacts', 'tel']
]
)
print(df)
結果如下
id name math ... class info.president info.contacts.tel
0 A001 Tom 60 ... Year 1 John Kasich 123456789
1 A002 James 89 ... Year 1 John Kasich 123456789
2 A003 Jenny 79 ... Year 1 John Kasich 123456789
[3 rows x 8 columns]
從剪貼板獲取資料
pandas 的 read_clipboard()
方法可以獲取存盤在剪貼板上的任何資料
假設你將資料從網上要復制粘貼到本地,那么用 pandas 的 read_clipboard()
方法可以直接讀取剪貼板的內容
默認情況下采取正則運算式\s+
作為分隔值的分隔符(即匹配一個或多個空格、制表符、換行符等空白字符作為分隔符),然后將剪貼板上的資料分割成表格資料
import pandas as pd
df = pd.read_clipboard()
print(df)
參考文章:https://jrashford.com/2022/08/02/loading-data-into-pandas-5-tips-and-tricks-you-may-or-may-not-know/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/553740.html
標籤:其他
上一篇:Angular Highcharts教程_編程入門自學教程_菜鳥教程-免費教程分享
下一篇:返回列表