使用python進行資料處理,常免不了做資料拼接。可是因為常用的資料容器型別不少,有list,array,dataframe等,時不時搞混(根本原因是以前偷懶一直沒用心去記-_-』)。終於痛定思痛,決定好好整理記錄下來,並養成好習慣。。。
以下按照不同資料容器型別,整理出了可用的資料拼接方法。
dataframe提供的拼接功能要更為豐富一些。大抵可以概括為非條件拼接和條件拼接兩種(非條件拼接和條件拼接是我為了便於理解記憶自己杜纂的,因此莫問出處)。
之所以叫它條件拼接,是因為它需要按某個指定的條件進行拼接,實現的效果很象sql的表關聯查詢。
條件拼接有merge和join,前者是pandas的方法,後者是dataframe的方法。
需要指定關聯的列,使用on指定。關聯列不只乙個列的,使用列表方式on=[colname1, colname2,…]。關聯的方式,和sql差不多,預設為inner,可選left,right,outer。
方法merge引數較多,更詳細的用,可到pandas官網檢視:
join也需要指定關聯的列。需要特別注意的一點是,其關聯的方式預設為left而不是inner,這一點有別於merge,需要特別注意。
方法join引數較多,更詳細的用法,可到pandas官網檢視:
numpy的陣列合併方法很多(其實感覺有點多過頭了……)。
stack用於矩陣堆疊,在參與堆疊的矩陣多於乙個時,堆疊結果將必然增加乙個維度。引數axis用於控制在哪兩個維度之間增加新維度。
vstack是沿著第乙個維度進行拼接,相當於concatenate取axis=0;hstack是沿著第二個維度進行拼接,相當於concatenate取axis=1;dstack是沿著第三個維度進行拼接,相當於concatenate取axis=2.
r_效果同vstack,c_效果則和hstack相同,但呼叫方法略有不同。r_和c_並不是函式的方法,因此不使用括號,而是使用方括號。
另外看到網上有人有人說r_和c_的效能和vstack等並不相同,但沒找到詳細說明,因此先mark著,以後再補充。
Python程式設計中的幾個tips
1.在大數字中使用下劃線,增強 可讀性 普通 num1 100000000000 num2 100000000 res num1 num2 print res 使用下劃線 適用於python3以上 num1 1000 0000 0000 num2 1 0000 0000 res num1 num2 ...
python 網路程式設計 01
我們常說的計算機網路通訊,值得是兩台,或者多台計算機間,進行資料傳輸。從計算機網路發展至今,人們使用了很多協議,但是最常用的還是tcp ip協議,實際上這是一組協議。當然使用python做網路程式設計的時候,我們通常都會在tcp ip協議上面程式設計。也就是我們不需要關心,tcp ip層真正傳輸層協...
python 併發程式設計 01多程序
思考 什麼是多程序?並行 統一時間點同時執行 併發 同一時間間隔裡同時執行 早期單核cpu的時候沒有並行的概念,只有併發的概念。多程序模組 一 利用multiprocessing包的process類開啟多程序程式示例如下 from multiprocessing import process imp...