首页
/
每日頭條
/
科技
/
pandas實現數據并集
pandas實現數據并集
更新时间:2025-07-01 08:23:53

上周我們關于Python中科學計算庫Numpy的介紹就結束了,今天我們開始介紹一個新的常用的計算工具庫,它就是大名鼎鼎的Pandas

Pandas的全稱是Python Data Analysis Library,是一種基于Numpy的科學計算工具。它最大的特點就是可以像是操作數據庫當中的表一樣操作結構化的數據,所以它支持許多複雜和高級的操作,可以認為是Numpy的加強版。它可以很方便地從一個csv或者是excel表格當中構建出完整的數據,并支持許多表級别的批量數據計算接口。

安裝使用

和幾乎所有的Python包一樣,pandas也可以通過pip進行安裝。如果你裝過Anaconda套件的話,那麼像是numpy、pandas等庫已經自動安裝好了,如果沒有安裝過也沒有關系,我們使用一行命令即可完成安裝。

pip install pandas

和Numpy一樣,我們在使用pandas的時候通常也會給它起一個别名,pandas的别名是pd。所以使用pandas的慣例都是:

import pandas as pd

如果你運行這一行沒有報錯的話,那麼說明你的pandas已經安裝好了。一般和pandas經常一起使用的還有另外兩個包,其中一個也是科學計算包叫做Scipy,另外一個是對數據進行可視化作圖的工具包,叫做Matplotlib。我們也可以使用pip将這兩個包一起安裝了,在之後的文章當中,用到這兩個包的時候,也會簡單介紹一下它們的用法。

pip install scipy matplotlib

Series 索引

在pandas當中我們最常用的數據結構有兩個,一個是Series另外一個是DataFrame。其中series是一維數據結構,可以簡單理解成一維數組或者是一維向量。而DataFrame自然就是二維數據結構了,可以理解成表或者是二維數組。

我們先來看看Series,Series當中存儲的數據主要有兩個,一個是一組數據構成的數組,另外一個是這組數據的索引或者是标簽。我們簡單創建一個Series打印出來看一下就明白了。

pandas實現數據并集(pandas使用pandas進行數據處理)1

這裡我們随意創建了一個包含四個元素的Series,然後将它打印了出來。可以看到打印的數據一共有兩列,第二列是我們剛才創建的時候輸入的數據,第一列就是它的索引。由于我們創建的時候沒有特意指定索引,所以pandas會自動為我們創建行号索引,我們可以通過Series類型當中的values和index屬性查看到Series當中存儲的數據和索引:

pandas實現數據并集(pandas使用pandas進行數據處理)2

這裡輸出的values是一個Numpy的數組,這并不奇怪,因為我們前面說了,pandas是一個基于Numpy開發的科學計算庫,Numpy是它的底層。從打印出來的index的信息當中,我們可以看到這是一個Range類型的索引,它的範圍以及步長。

索引是Series構建函數當中的一個默認參數,如果我們不填,它默認會為我們生成一個Range索引,其實也就是數據的行号。我們也可以自己指定數據的索引,比如我們在剛才的代碼當中加入index這個參數,我們就可以自己指定索引了。

pandas實現數據并集(pandas使用pandas進行數據處理)3

當我們指定了字符類型的索引之後,index返回的結果就不再是RangeIndex而是Index了。說明pandas内部對數值型索引和字符型索引是做了區分的。

有了索引,自然是用來查找元素用的。我們可以直接将索引當做是數組的下标使用,兩者的效果是一樣的。不僅如此,索引數組也是可以接受的,我們可以直接查詢若幹個索引的值。

pandas實現數據并集(pandas使用pandas進行數據處理)4

另外在創建Series的時候,重複的索引也是允許的。同樣當我們使用索引查詢的時候也會得到多個結果。

pandas實現數據并集(pandas使用pandas進行數據處理)5

不僅如此,像是Numpy那樣的bool型索引也依然是支持的:

pandas實現數據并集(pandas使用pandas進行數據處理)6

Series計算

Series支持許多類型的計算,我們可以直接使用加減乘除操作對整個Series進行運算

pandas實現數據并集(pandas使用pandas進行數據處理)7

也可以使用Numpy當中的運算函數來進行一些複雜的數學運算,但是這樣計算得到的結果會是一個Numpy的array。

pandas實現數據并集(pandas使用pandas進行數據處理)8

因為Series當中有索引,所以我們也可以使用dict的方式判斷索引是否在Series當中

pandas實現數據并集(pandas使用pandas進行數據處理)9

Series有索引也有值,其實和dict的存儲結構是一樣的,所以Seires也支持通過一個dict來初始化:

pandas實現數據并集(pandas使用pandas進行數據處理)10

通過這種方式創建出來的順序就是dict當中key存儲的順序,我們可以在創建的時候指定index,這樣就可以控制它的順序了。

pandas實現數據并集(pandas使用pandas進行數據處理)11

我們在指定index的時候額外傳入了一個沒有在dict當中出現過的key,由于在dict當中找不到對應的值,Series會将它記成NAN(Not a number)。可以理解成是非法值或者是空值,在我們處理特征或者是訓練數據的時候,經常會遇到存在一些條目的數據的某個特征空缺的情況,我們可以通過pandas當中isnull和notnull函數檢查空缺的情況。

pandas實現數據并集(pandas使用pandas進行數據處理)12

當然Series當中也有isnull的函數,我們也可以調用。

pandas實現數據并集(pandas使用pandas進行數據處理)13

最後,Series當中的index也是可以修改的, 我們可以直接給它賦上新值:

pandas實現數據并集(pandas使用pandas進行數據處理)14

總結

從核心本質上來說,pandas當中的Series就是在Numpy一維數組上做的一層封裝,加上了索引等一些相關的功能。所以我們可以想見DataFrame其實就是一個Series的數組的封裝,加上了更多數據處理相關的功能。我們把核心結構把握住了,再來理解整個pandas的功能要比我們一個一個死記這些api有用得多。

pandas是Python數據處理的一大利器,作為一個合格的算法工程師幾乎是必會的内容,也是我們使用Python進行機器學習以及深度學習的基礎。根據調查資料顯示,算法工程師日常的工作有70%的份額投入在了數據處理當中,真正用來實現模型、訓練模型的隻有30%不到。因此可見數據處理的重要性,想要在行業當中有所發展,絕不僅僅是學會模型就足夠的。

文章就到這裡,如果喜歡本文,可以的話,請點個關注,給我一點鼓勵,也方便獲取更多文章。

本文始發于公衆号:TechFlow

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
水鑽頭不鋒利怎麼磨
水鑽頭不鋒利怎麼磨
1、首先我們準備好金剛石,金剛石是專門用來修砂輪的,方便我們選擇砂輪粗細的運用。也可以用點和面來進行...
2025-07-01
雙層主闆和單層主闆區别
雙層主闆和單層主闆區别
雙層主闆和單層主闆的區别是單層主闆散熱好,不易發燙和掉幀。要更換元件時,如果管腳是穿過闆的,并且該點兩面都有走線的,在焊接管腳中,最好兩面都焊,以免出現斷路的現象。主闆(英語:Motherboard, Mainboard,簡稱:Mobo,别名:主機闆、系統闆、邏輯闆、母闆、底闆)是微機最基本的也是最...
2025-07-01
微信限制支付是什麼原因導緻的呢
微信限制支付是什麼原因導緻的呢
原因有:1、沒有綁定個人實名銀行卡,未進行實名認證;2、零錢或綁定銀行卡快捷支付額度受限;3、微信系統故障或者網絡信号問題。微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。微信支付以綁定銀行卡的快捷支付為基礎,向用戶提供安全、快捷、高效的支付服務。自2017年11月23日起...
2025-07-01
qq空間浏覽量和訪客數的區别
qq空間浏覽量和訪客數的區别
計數方式不同。浏覽量即頁面浏覽量或點擊量,若同一用戶多次打開或刷新同一個頁面,PV值會累加。訪客數是指不同的、通過互聯網訪問、浏覽這個網頁的獨立用戶,所選時間段内,同一訪客多次訪問,UV值保持不變,通常情況下浏覽量大于訪客量。QQ空間是騰訊公司在2005年開發出來的一個具有個性空間,具有博客的功能的...
2025-07-01
芝麻分550可以借充電寶嗎
芝麻分550可以借充電寶嗎
芝麻分大于等于550分即可免押金租借共享充電寶。芝麻信用,是螞蟻金服旗下獨立的第三方征信機構,通過雲計算、機器學習等技術客觀呈現個人的信用狀況,已經在信用卡、消費金融、融資租賃、酒店、租房、出行、婚戀、分類信息、學生服務、公共事業服務等上百個場景為用戶、商戶提供信用服務。支付寶(中國)網絡技術有限公...
2025-07-01
Copyright 2023-2025 - www.tftnews.com All Rights Reserved