python 資料清洗之資料合併、轉換、過濾、排序

發表於2017-02-11

前面我們用pandas做了一些基本的操作,接下來進一步瞭解資料的操作,
資料清洗一直是資料分析中極為重要的一個環節。

資料合併

在pandas中可以通過merge對資料進行合併操作。

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
可以看到data1和data2中用於相同標籤的欄位顯示,而其他欄位則被捨棄,這相當於SQL中做inner join連線操作。
此外還有outer,ringt,left等連線方式,用關鍵詞how的進行表示。

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
兩個資料框中如果列名不同的情況下,我們可以通過指定letf_on 和right_on兩個引數把資料連線在一起

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

其他詳細引數說明
python  資料清洗之資料合併、轉換、過濾、排序

重疊資料合併

有時候我們會遇到重疊資料需要進行合併處理,此時可以用comebine_first函式。

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
可以看到相同標籤下的內容優先顯示data3的內容,如果一個資料框中的某一個資料是缺失的,此時另外一個資料框中的元素就會補上
這裡的用法類似於np.where(isnull(a),b,a)

資料重塑和軸向旋轉

這個內容我們在上一篇pandas文章有提到過。資料重塑主要使用reshape函式,旋轉主要使用unstack和stack兩個函式。

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

資料轉換

刪除重複行資料

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
可以看出第三行是重複第二行的資料所以,顯示結果為True
另外用drop_duplicates方法可以去除重複行

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

替換值

除了使用我們上一篇文章中提到的fillna的方法外,還可以用replace方法,而且更簡單快捷

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
多個資料一起換

python  資料清洗之資料合併、轉換、過濾、排序

資料分段

結果為:
[11, 15, 18, 20, 25, 26, 27, 24][NaN, NaN, (15, 20], (15, 20], (20, 25], NaN, NaN, (20, 25]]
Categories (2, object): [(15, 20] < (20, 25]]

可以看出分段後的結果,不在分段內的資料顯示為na值,其他則顯示資料所在的分段。

結果為:
[-1 -1 0 0 1 -1 -1 1]
顯示所在分段排序標籤

結果為:
Index([‘(15, 20]’, ‘(20, 25]’], dtype=’object’)
顯示所以分段標籤

結果為:
python  資料清洗之資料合併、轉換、過濾、排序
顯示每個分段值得個數

此外還有一個qcut的函式可以對資料進行4分位切割,用法和cut類似。

排列和取樣

我們知道排序的方法有好幾個,比如sort,order,rank等函式都能對資料進行排序
現在要說的這個是對資料進行隨機排序(permutation)

結果為:
[1 0 4 2 3]
這裡的peemutation函式對0-4的資料進行隨機排序的結果。
也可以對資料進行取樣

結果為:
python  資料清洗之資料合併、轉換、過濾、排序

print(samp)
結果為:
[1 0 2]

print(df.take(samp))
結果為:
python  資料清洗之資料合併、轉換、過濾、排序
這裡使用take的結果是,按照samp的順序從df中提取樣本。

相關文章