自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何成為Python的數(shù)據(jù)操作庫Pandas的專家?

開發(fā) 后端

Pandas庫是Python中最流行的數(shù)據(jù)操作庫。受到R語言的frames啟發(fā),它提供了一種通過其data-frame API操作數(shù)據(jù)的簡單方法。下面我們給大家介紹Pandas在Python中的定位。

 

如何成為Python的數(shù)據(jù)操作庫Pandas的專家?

 

了解Pandas

要很好地理解pandas,關(guān)鍵之一是要理解pandas是一系列其他python庫的包裝器。主要的有Numpy、SQL alchemy、Matplot lib和openpyxl。

data frame的核心內(nèi)部模型是一系列NumPy數(shù)組和pandas函數(shù)。

pandas利用其他庫來從data frame中獲取數(shù)據(jù)。例如,SQL alchemy通過read_sql和to_sql函數(shù)使用;openpyxl和xlsx writer用于read_excel和to_excel函數(shù)。而Matplotlib和Seaborn則用于提供一個簡單的接口,使用諸如df.plot()這樣的命令來繪制data frame中可用的信息。

Numpy的Pandas-高效的Pandas

您經(jīng)常聽到的抱怨之一是Python很慢,或者難以處理大量數(shù)據(jù)。通常情況下,這是由于編寫的代碼的效率很低造成的。原生Python代碼確實(shí)比編譯后的代碼要慢。不過,像Pandas這樣的庫提供了一個用于編譯代碼的python接口,并且知道如何正確使用這個接口。

向量化操作

與底層庫Numpy一樣,pandas執(zhí)行向量化操作的效率比執(zhí)行循環(huán)更高。這些效率是由于向量化操作是通過C編譯代碼執(zhí)行的,而不是通過本機(jī)python代碼執(zhí)行的。另一個因素是向量化操作的能力,它可以對整個數(shù)據(jù)集進(jìn)行操作,而不只是對一個子數(shù)據(jù)集進(jìn)行操作。

應(yīng)用接口允許通過使用CPython接口進(jìn)行循環(huán)來獲得一些效率:

df.apply(lambda x: x['col_a'] * x['col_b'], axis=1)

但是,大部分性能收益可以通過使用向量化操作本身獲得,可以直接在pandas中使用,也可以直接調(diào)用它的內(nèi)部Numpy數(shù)組。

通過DTYPES高效地存儲數(shù)據(jù)

當(dāng)通過read_csv、read_excel或其他數(shù)據(jù)幀讀取函數(shù)將數(shù)據(jù)幀加載到內(nèi)存中時,pandas會進(jìn)行類型推斷,這可能是低效的。這些api允許您明確地利用dtypes指定每個列的類型。指定dtypes允許在內(nèi)存中更有效地存儲數(shù)據(jù)。

df.astype({'testColumn': str, 'testCountCol': float})

Dtypes是來自Numpy的本機(jī)對象,它允許您定義用于存儲特定信息的確切類型和位數(shù)。

例如,Numpy的類型np.dtype(' int32 ')表示一個32位長的整數(shù)。pandas默認(rèn)為64位整數(shù),我們可以節(jié)省一半的空間使用32位:

 

如何成為Python的數(shù)據(jù)操作庫Pandas的專家?

 

處理帶有塊的大型數(shù)據(jù)集

pandas允許按塊(chunk)加載數(shù)據(jù)幀中的數(shù)據(jù)。因此,可以將數(shù)據(jù)幀作為迭代器處理,并且能夠處理大于可用內(nèi)存的數(shù)據(jù)幀。

 

如何成為Python的數(shù)據(jù)操作庫Pandas的專家?

 

在讀取數(shù)據(jù)源時定義塊大小和get_chunk方法的組合允許panda以迭代器的方式處理數(shù)據(jù),如上面的示例所示,其中數(shù)據(jù)幀一次讀取兩行。然后我們可以遍歷這些塊:

i = 0for a in df_iter: # do some processing chunk = df_iter.get_chunk() i += 1 new_chunk = chunk.apply(lambda x: do_something(x), axis=1) new_chunk.to_csv("chunk_output_%i.csv" % i )

它的輸出可以被提供到一個CSV文件,pickle,導(dǎo)出到數(shù)據(jù)庫,等等…

 

責(zé)任編輯:趙寧寧
相關(guān)推薦

2011-09-01 15:01:38

網(wǎng)頁設(shè)計

2023-01-06 08:24:00

PandasPython

2020-06-24 11:59:31

PythonPandas數(shù)據(jù)處理

2021-08-12 08:00:00

Pandas數(shù)據(jù)分析SQL

2014-04-14 16:50:15

Linux專家

2019-07-29 08:59:14

主管阿里專家Leader

2019-07-05 11:20:31

PythonMySQL數(shù)據(jù)庫

2023-01-28 10:09:00

Pandas數(shù)據(jù)分析Python

2020-11-19 15:26:36

SQLPandas代碼

2018-05-16 09:00:24

數(shù)據(jù)質(zhì)量數(shù)據(jù)管理數(shù)據(jù)科學(xué)家

2024-09-25 20:32:16

2010-08-24 08:58:42

開發(fā)者

2015-03-19 14:56:08

程序員專專家級的程序員

2010-05-05 15:45:52

Oracle數(shù)據(jù)庫

2023-09-25 13:19:41

pandasPython

2023-11-21 09:11:31

2009-02-24 10:19:49

Oracle DBA深入解析Oracle求職

2010-03-08 11:35:22

2024-10-23 09:00:00

數(shù)據(jù)分析Pandas

2021-02-01 07:40:55

架構(gòu)師阿里技專家
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號