成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你用Pandas讀取所有主流數據存儲

存儲 數據管理
從常見的Excel和CSV到JSON及各種數據庫,Pandas幾乎支持市面上所有的主流數據存儲形式。

Pandas提供了一組頂層的I/O API,如pandas.read_csv()等方法,這些方法可以將眾多格式的數據讀取到DataFrame數據結構中,經過分析處理后,再通過類似DataFrame.to_csv()的方法導出數據。

表3-1列出了一些常見的數據格式讀取和輸出方法。

▼表3-1 Pandas中常見數據的讀取和輸出函數

輸入和輸出的方法如下:

  • 讀取函數一般會賦值給一個變量df,df = pd.read_();
  • 輸出函數是將變量自身進行操作并輸出df.to_()。

一、CSV文件

CSV(Comma-Separated Values)是用逗號分隔值的數據形式,有時也稱為字符分隔值,因為分隔字符也可以不是逗號。CSV文件的一般文件擴展名為.csv,用制表符號分隔也常用.tsv作為擴展名。CSV不僅可以是一個實體文件,還可以是字符形式,以便于在網絡上傳輸。

CSV文件的讀取方法如下(以下代碼省略了賦值操作):

# 文件目錄
pd.read_csv('data.csv') # 如果文件與代碼文件在同一目錄下
pd.read_csv('data/my/data.csv') # 指定目錄
pd.read_csv('data/my/my.data') # CSV文件的擴展名不一定是.csv
CSV文件可以存儲在網絡上,通過URL來訪問和讀取:
# 使用URL
pd.read_csv('https://www.gairuo.com/file/data/dataset/GDP-China.csv')

CSV不帶數據樣式,標準化較強,是最為常見的數據格式。

二、Excel

Excel電子表格是微軟公司開發的被廣泛使用的電子數據表格軟件,一般可以將它的使用分為兩類。一類是文字或者信息的結構化,像排班表、工作日報、客戶名單之類,以文字為主;另一類為統計報表,如學生成績表、銷售表等,以數字為核心。

Pandas主要處理統計報表,當然也可以對文字信息類表格做整理,在新版本的Pandas中加入了非常強大的文本處理功能。

Excel雖然易于上手,功能也很強大,但在數據分析中缺點也很明顯。

  • 無法進行復雜的處理:有時Excel提供的函數和處理方法無法滿足復雜邏輯。
  • 無法支持更大的數據量:目前Excel支持的行數上限為1 048 576(2的20次方),列數上限為16 384(2的14次方,列標簽為XFD),在數據分析、機器學習操作中往往會超過這個體量。
  • 處理方法無法復用:Excel一般采用設定格式的公式,然后將數據再復制,但這樣仍然無法對數據的處理過程進行靈活復用。
  • 無法自動化:數據分析要經過一個數據輸入、處理、分析和輸出的過程,這些都是由人工來進行操作,無法實現自動化。

Pandas可以讀取、處理大體量的數據,通過技術手段,理論上Pandas可以處理的數據體量無限大。編程可以更加自由地實現復雜的邏輯,邏輯代碼可以進行封裝、重復使用并可實現自動化。

Pandas也提供了非常豐富的讀取操作,這些在《手把手教你用Python讀取Excel》有詳細介紹。最基礎的讀取方法如下:

# 返回DataFrame
pd.read_excel('team.xlsx') # 默認讀取第一個標簽頁Sheet
pd.read_excel('path_to_file.xlsx', sheet_name='Sheet1') # 指定Sheet
# 從URL讀取
pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')

三、JSON

JSON是互聯網上非常通用的輕量級數據交換格式,是HTTP請求中數據的標準格式之一。Pandas提供的JSON讀取方法在解析網絡爬蟲數據時,可以極大地提高效率。可如下讀取JSON文件:

# data.json為同目錄下的一個文件
pd.read_json('data.json')
可以解析一個JSON字符串,以下是從HTTP服務檢測到的設備信息:
jdata='{"res":{"model":"iPhone","browser":"Safari","version":"604.1"},"status":200}'
pd.read_json(jdata)
'''
res status
browser Safari 200
model iPhone 200
version 604.1 200
'''

Pandas還提供了pd.json_normalize(data)方法來讀取半結構化的JSON數據。

四、HTML

pd.read_html()函數可以接受HTML字符串、HTML文件、URL,并將HTML中的標簽表格數據解析為DataFrame。如返回有多個df的列表,則可以通過索引取第幾個。如果頁面里只有一個表格,那么這個列表就只有一個DataFrame。此方法是Pandas提供的一個簡單實用的實現爬蟲功能的方法。

dfs = pd.read_html('https://www.gairuo.com/p/pandas-io')
dfs[0] # 查看第一個df
# 讀取網頁文件,第一行為表頭
dfs = pd.read_html('data.html', header=0)
# 第一列為索引
dfs = pd.read_html(url, index_col=0)

如果一個網頁表格很多,可以指定元素來獲取:

# id='table'的表格,注意這里仍然可能返回多個
dfs1 = pd.read_html(url, attrs={'id': 'table'})
# dfs1[0]
# class='sortable'
dfs2 = pd.read_html(url, attrs={'class': 'sortable'})

常用的參數與read_csv的基本相同。

五、剪貼板

剪貼板(Clipboard)是操作系統級的一個暫存數據的地方,它保存在內存中,可以在不同軟件之間傳遞,非常方便。Pandas支持讀取剪貼板中的結構化數據,這就意味著我們不用將數據保存成文件,而可以直接從網頁、Excel等文件中復制,然后從操作系統的剪貼板中讀取,非常方便。

'''
x y z
a 1 2 3
b 4 5 6
c 7 8 9
'''

# 復制上邊的數據,然后直接賦值
cdf = pd.read_clipboard()

變量cdf就是上述文本的DataFrame結構數據。read_clipboard的參數使用與read_csv完全一樣。

六、SQL

Pandas需要引入SQLAlchemy庫來支持SQL,在SQLAlchemy的支持下,它可以實現所有常見數據庫類型的查詢、更新等操作。Pandas連接數據庫進行查詢和更新的方法如下。

  • read_sql_table(table_name, con[, schema, …]):把數據表里的數據轉換成DataFrame。
  • read_sql_query(sql, con[, index_col, …]):用sql查詢數據到DataFrame中。
  • read_sql(sql, con[, index_col, …]):同時支持上面兩個功能。
  • DataFrame.to_sql(self, name, con[, schema, …]):把記錄數據寫到數據庫里。

以下是一些代碼示例:

# 需要安裝SQLAlchemy庫
from sqlalchemy import create_engine
# 創建數據庫對象,SQLite內存模式
engine = create_engine('sqlite:///:memory:')
# 取出表名為data的表數據
with engine.connect() as conn, conn.begin():
data = pd.read_sql_table('data', conn)

# data
# 將數據寫入
data.to_sql('data', engine)
# 大量寫入
data.to_sql('data_chunked', engine, chunksize=1000)
# 使用SQL查詢
pd.read_sql_query('SELECT * FROM data', engine)

七、小結

Pandas支持讀取非常多的數據格式,本文僅介紹了幾種常見的數據文件格式,更多格式可以在其官網查詢。

https://pandas.pydata.org/docs/user_guide/io.html

關于作者:李慶輝,數據產品專家,某電商公司數據產品團隊負責人,擅長通過數據治理、數據分析、數據化運營提升公司的數據應用水平。精通Python數據科學及Python Web開發,曾獨立開發公司的自動化數據分析平臺,參與教育部“1+X”數據分析(Python)職業技能等級標準評審。中國人工智能學會會員,企業數字化、數據產品和數據分析講師,在個人網站“蓋若”上編寫的技術和產品教程廣受歡迎。

本書摘編自《深入淺出Pandas:利用Python進行數據處理與分析》,機械工業出版社華章公司2021年出版。轉載請與我們取得授權。

責任編輯:武曉燕 來源: 大數據DT
相關推薦

2021-02-06 14:55:05

大數據pandas數據分析

2021-08-09 13:31:25

PythonExcel代碼

2021-08-02 23:15:20

Pandas數據采集

2022-10-19 14:30:59

2022-04-24 10:33:56

大數據數據分析

2021-05-10 06:48:11

Python騰訊招聘

2020-03-08 22:06:16

Python數據IP

2021-12-29 20:20:25

結構化數據Pandas

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2022-08-04 10:39:23

Jenkins集成CD

2009-04-22 09:17:19

LINQSQL基礎

2021-01-21 09:10:29

ECharts柱狀圖大數據

2021-01-08 10:32:24

Charts折線圖數據可視化

2012-01-11 13:40:35

移動應用云服務

2021-12-11 20:20:19

Python算法線性

2021-02-02 13:31:35

Pycharm系統技巧Python

2020-12-17 09:40:01

Matplotlib數據可視化命令

2017-10-27 10:29:35

人臉識別UbuntuPython

2021-06-05 23:51:21

ECharts氣泡圖散點圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产激情视频在线免费观看 | 激情久久久久 | 日本久久久久久 | 国产精品欧美日韩 | 国产精品永久久久久 | 午夜视频大全 | 久久精品国产一区二区 | 日日夜夜精品视频 | 久久精品色视频 | 人人干人人干人人干 | 欧美一区二区在线观看 | 国产欧美一区二区在线观看 | 欧美日韩综合 | 中文字幕一区二区三区乱码在线 | 激情一区 | 国产精品精品 | 日韩成人免费视频 | 在线国产一区 | 久久精品一区二区三区四区 | 丁香一区二区 | 天天干天天草 | 国产区第一页 | 欧美日韩一区二区视频在线观看 | 久久狠狠 | 午夜精品| 免费看爱爱视频 | 欧美一级免费观看 | 午夜小电影 | 日日干夜夜草 | 欧美最猛性xxxxx亚洲精品 | 精品亚洲一区二区三区 | 国产乱码精品一区二区三区中文 | 91精品在线观看入口 | 日韩一区二区福利 | 欧美成人久久 | 亚洲人成人一区二区在线观看 | 久久久久久综合 | 亚洲一区二区不卡在线观看 | 久久亚洲欧美日韩精品专区 | 老司机深夜福利网站 | 99re热精品视频国产免费 |