Python操作Excel的36個必備函式

bluepeach發表於2021-09-11

Python操作Excel的36個必備函式

本文涉及pandas最常用的36個函式,透過這些函式介紹如何完成資料生成和匯入、資料清洗、預處理,以及最常見的資料分類,資料篩選,分類彙總,透視等最常見的操作。

生成資料表

常見的生成資料表的方法有兩種,第一種是匯入外部資料,第二種是直接寫入資料。

Excel中的“檔案”選單中提供了獲取外部資料的功能,支援資料庫和文字檔案和頁面的多種資料來源匯入。

e0e128d7247c9c8506061415dabc44b.png

Python支援從多種型別的資料匯入。在開始使用Python進行資料匯入前需要先匯入numpy和pandas庫。

aec0950597964e43eab81c0d9a7fb06.png

匯入外部資料

a986323a8f0a47b962d56842a74721e.png

裡面有很多可選引數設定,例如列名稱、索引列、資料格式等

直接寫入資料

2b5834698d6df70aaf5c34cf296f98b.png

資料表檢查

資料表檢查的目的是瞭解資料表的整體情況,獲得資料表的關鍵資訊、資料的概況,例如整個資料表的大小、所佔空間、資料格式、是否有 空值和重複項和具體的資料內容,為後面的清洗和預處理做好準備。

1.資料維度(行列)

Excel中可以透過CTRL+向下的游標鍵,和CTRL+向右的游標鍵 來檢視行號和列號。Python中使用shape函式來檢視資料表的維度,也就是行數和列數。

df.shape

2.資料表資訊

使用info函式檢視資料表的整體資訊,包括資料維度、列名稱、資料格式和所佔空間等資訊。#資料表資訊

50876617900223a04b784bc36f648ab.png

3.檢視資料格式

Excel中透過選中單元格並檢視開始選單中的數值型別來判斷數 據的格式。Python中使用dtypes函式來返回資料格式。

805fd0a6d09eb00f2a981c0fdbcd8c7.png

Dtypes是一個檢視資料格式的函式,可以一次性檢視資料表中所 有資料的格式,也可以指定一列來單獨檢視

58285874ccc11ff2c01afb0e0002541.png

4.檢視空值

Excel中檢視空值的方法是使用“定位條件”在“開始”目錄下的“查詢和選擇”目錄。

1b9e2ecf57ed84a39701d67e61a0f34.png

Isnull是Python中檢驗空值的函式

7f64cc57f7f992894c82a4c5a464984.png

5.檢視唯一值

Excel中檢視唯一值的方法是使用“條件格式”對唯一值進行顏色 標記。

efeb63fcc1f0429a31fd912f40f831e.png

Python中使用unique函式檢視唯一值。

2a8f3561ba90d71ed2d710060ea1544.png

6.檢視資料表數值

Python中的Values函式用來檢視資料表中的數值

2df9b5ee25016ca2d23f408a1415f9f.png

7.檢視列名稱

Colums函式用來單獨檢視資料表中的列名稱。

b924ea5f5a998b192b570a70be8f0e5.png

8.檢視前10行資料

Head函式用來檢視資料表中的前N行資料

f4ada566c5cae3322737e77068633b3.png

9.檢視後10行資料

Tail行數與head函式相反,用來檢視資料表中後N行的資料

594776752e7ac51b183c56bf1543724.png

資料表清洗

本章介紹對資料表中的問題進行清洗,包括對空值、大小寫問題、資料格式和重複值的處理。

1.處理空值(刪除或填充)

Excel中可以透過“查詢和替換”功能對空值進行處理

67e6eeac8b019309ebb336ae8c325b7.png

Python中處理空值的方法比較靈活,可以使用 Dropna函式用來刪除資料表中包含空值的資料,也可以使用fillna函式對空值進行填充。

8e204af4ae13c66a85053fb4df48444.png

也可以使用數字對空值進行填充

fcfca34f42901fe1418f27a52fef89e.png

使用price列的均值來填充NA欄位,同樣使用fillna函式,在要填充的數值中使用mean函式先計算price列當前的均值,然後使用這個均值對NA進行填充。

e859f2cedd2e47c3dd53caf5ab6770d.png

2.清理空格

字元中的空格也是資料清洗中一個常見的問題

899d5327dc27f7d352bbefd123b6dde.png

3.大小寫轉換

在英文欄位中,字母的大小寫不統一也是一個常見的問題。Excel中有UPPER,LOWER等函式,Python中也有同名函式用來解決 大小寫的問題。

b39f6e09ff1f14fa51e21f39da8402f.png

4.更改資料格式

Excel中透過“設定單元格格式”功能可以修改資料格式。

396a1e842f0c2f4a594350be8097c1b.png

Python中透過astype函式用來修改資料格式。

9ffa8871c3c4146bfdc98d7b116cd9a.png

5.更改列名稱

Rename是更改列名稱的函式,我們將來資料表中的category列更改為category-size。

3511216d3309eff55a056543ad82307.png

6.刪除重複值

Excel的資料目錄下有“刪除重複項”的功能

f728b02625cdafc7a331cd475b1f8a5.png

Python中使用drop_duplicates函式刪除重複值

c08edfc5fecd2a76a418dfc88c5142d.png

city列中beijing存在重複,分別在第一位和最後一位 drop_duplicates()函式刪除重複值

d472c0dccf504b56766cb09faf65112.png

設定keep='last‘’引數後,與之前刪除重複值的結果相反,第一位 出現的beijing被刪除

f9cf97e757410a5474131c37a4dadb5.png

7.數值修改及替換

Excel中使用“查詢和替換”功能就可以實現數值的替換

d3b555f024d31c800a73c7e7cf64ad1.png

Python中使用replace函式實現資料替換

05baa14c1c5c65133246eaed7857290.png

資料預處理

本章主要講的是資料的預處理,對清洗完的資料進行整理以便後期的統計和分析工作。主要包括資料表的合併,排序,數值分列,資料分組及標記等工作。

1.資料表合併

在Excel中沒有直接完成資料表合併的功能,可以透過VLOOKUP函式分步實現。在Python中可以透過merge函式一次性實現。

a16e8b49943dd68426601da703e81b9.png

使用merge函式對兩個資料表進行合併,合併的方式為inner,將 兩個資料表中共有的資料匹配到一起生成新的資料表。並命名為 df_inner。

8777f66a1a4c63e96d7373dba429e7b.png

合併的方式還有left,right和outer方式

d85ed525c7c3886d86eb19a2a84154a.png

2.設定索引列

索引列可以進行資料提取,彙總,資料篩選

a4aeffb66059167e384bf04f461ba20.png

3.排序(按索引,按數值)

Excel中可以透過資料目錄下的排序按鈕直接對資料表進行排序

ac39a110d292d39bd4202f405b18c40.png

Python中需要使用ort_values函式和sort_index函式完成排序

0272b01bbcc9d77ba4006aafe2da1e0.png

Sort_index函式用來將資料表按索引列的值進行排序。

71c4df031217710de5eab4b1b826dbd.png

4.資料分組

Excel中可以透過VLOOKUP函式進行近似匹配來完成對數值的分組,或者使用“資料透視表”來完成分組

Python中使用Where函式用來對資料進行判斷和分組

1d47005df0cef3838e0439e20140f18.png

還可以對多個欄位的值進行判斷後對資料進行分組,下面的程式碼中對city列等於beijing並且price列大於等於4000的資料標記為1。

38366201a2e50fb4045a12c72946231.png

5.資料分列

Excel中的資料目錄下提供“分列”功能。

c2be8aa0760f303285b3b6a2cbd8cb9.png

在Python中使用split函式實現分列在資料表中category列中的資料包含有兩個資訊,前面的數字為類別id,後面的字母為size值。中間以連字元進行連線。我們使用split函式對這個欄位進行拆分,並將拆分後的資料表匹配回原資料表中。

39587476ad4971c621f3556c99b4fa6.png

資料提取

1.按標籤提取(loc)

b5c6b074d0bc929ab558b76b0727c7c.png

使用冒號可以限定提取資料的範圍,冒號前面為開始的標籤值後面為結束的標籤值。

15c64b4055a8a884145e69b4ab3ba0b.png

Reset_index函式用於恢復索引,這裡我們重新將date欄位的日期 設定為資料表的索引,並按日期進行資料提取。

edc359d71a8a533c6f5d77b2f4b5317.png

83fdef02e8f0b0e281495277efb86e6.png

2.按位置提取(iloc)

使用iloc函式按位置對資料表中的資料進行提取,這裡冒號前後 的數字不再是索引的標籤名稱,而是資料所在的位置,從0開始。

0e89b0746cca459e09163913789f6eb.png

iloc函式除了可以按區域提取資料,還可以按位置逐條提取

70134eb2cf6273fbf33cf171940f48b.png

前面方括號中的0,2,5表示資料所在行的位置,後面方括號中的數表示所在列的位置。

dd237d05635f99fa28bccb060fee5a7.png

3.按標籤和位置提取(ix)

ix是loc和iloc的混合,既能按索引標籤提取,也能按位置進行數 據提取.

20f9cc1aa038681dddef5a7d5db726c.png

b9d7e62275b825888950a33e5e0aa27.png

4.按條件提取(區域和條件值)

使用loc和isin兩個函式配合使用,按指定條件對資料進行提取

d1904dc46501da7c41c07127960cdd1.png

將isin函式巢狀到loc的資料提取函式中,將判斷結果為Ture資料 提取出來。這裡我們把判斷條件改為city值是否為beijing和shanghai。如果是就把這條資料提取出來。

95f0ba0cc4248687d25854de314da99.png

資料篩選

按條件篩選(與、或、非)

Excel資料目錄下提供了“篩選”功能,用於對資料表按不同的條 件進行篩選。

5536004525dcf8914c5ab74b9538faa.png

Python中使用loc函式配合篩選條件來完成篩選功能。配合sum和count函式還能實現Excel中sumif和countif函式的功能。使用“與”條件進行篩選,條件是年齡大於25歲,並且城市為 beijing。

604c3da0ec978ce9680d4f9ba1fa6b1.png

ad06edd50dd65d79834dda88de66a7b.png

在前面的程式碼後面增加city列,並使用count函式進行計數。相當於Excel中的countifs函式的功能

d9a9833d03630f3264193389851646a.png

還有一種篩選的方式是用query函式

7df85c298f4177f6244ebdd3f978538.png

在前面的程式碼後增加price欄位和sum函式。對篩選後的price欄位 進行求和,相當於Excel中的sumifs函式的功能。

5cdd728bf99a802284cf867b1ea2d87.png

資料彙總

Excel中使用分類彙總和資料透視可以按特定維度對資料進行彙總,Python中使用的主要函式是groupby和pivot_table。

1.分類彙總

0be72e8f5e0ea65f33288cc3b200b3e.png

還可以對彙總後的資料同時按多個維度進行計算

ffe80c8227548e8fb0780dcdb32d2c3.png

2.資料透視

be9bae2883c690642782edae3482e2f.png

Python中透過pivot_table函式實現同樣的效果

67470e642827d5a0ae14f7bcd9f4bfe.png

資料統計

1.資料取樣

Excel的資料分析功能中提供了資料抽樣的功能

627db15e2728acb30f979b3c2c0fdb6.png

Python透過sample函式完成資料取樣

fb3ec484b847718955601a27f28f603.png

Weights引數是取樣的權重,透過設定不同的權重可以更改取樣的結果

1909b1807095c1f2bf0d5f23ea2d72e.png

Sample函式中引數replace,用來設定取樣後是否放回

4743ce79eaadd1caffee8f5aff992c1.png

2.描述統計

Python中可以透過Describe對資料進行描述統計

671538dbc3c14c753475f72c1439e3b.png

3.相關分析

9c198f2b1a3fe5a68b0608300dc33e9.png

Python中則透過corr函式完成相關分析的操作,並返回相關係數。

c5fe02360d9e5dd14ba4a2c7064b633.png

資料輸出

1.寫入Excel

a2a76ed8b837e244a8c97819e8321b2.png

2.寫入csv

244a5925790f6f6a4fc10faff8a3fe6.png

python學習網,大量的免費,歡迎線上學習!

本文轉自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2558/viewspace-2835037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章