Panda資料處理

leagueandlegends發表於2024-07-15

一、 Pandas簡介

Pandas,python+data+analysis的組合縮寫,是python中基於numpy和matplotlib第三方資料分析庫,與後者共同構成python資料分析基礎工具包。pandas是在numpy基礎上實現的,其核心資料結構與numpy的ndarray十分相似,但pandas與numpy的關係不是替代,而是互為補充。Pandas就資料處理上比numpy更強大智慧,而numpy比pandas更為基礎強大。

二、安裝Pandas

使用pip install numpy和pip install pandas安裝numpy和pandas庫

安裝完成後會有pandas、numpy、python-deteutil、six這幾個三方庫

引入pandas

import numpy as num
import pandas as pd

二、pandas讀寫資料

Pandas支援非常豐富的檔案型別,也就是說,他可以讀取儲存多種型別的資料,比如excel檔案、CSV檔案,或者json檔案、sql檔案、html檔案等。這對我們獲取資料很方便,這裡只講解excel的一些常用用法,其他型別檔案大同小異。

1、 read_excel():讀取excel

a、 sheet_name:訪問指定excel某張工作表。Sheet_name可以是str、int、list、None型別,預設值是0

舉例如下:

1、讀取一張sheet頁

新建一張excel表,表名為test1,sheet頁名為test1

import pandas as pd
df=pd.read_excel("test1.xlsx",sheet_name="test1")
print(df)

輸出結果如下:

2、讀取多張表

新增sheet頁2 test2

import pandas as pd
df=pd.read_excel("test1.xlsx",sheet_name=["test1","test2"])
print(df)

輸出結果:

3、指定頁籤讀取資料,下標籤從0開始

import pandas as pd

df2=pd.read_excel("test1.xlsx",sheet_name=[0,1])
print(df2)

輸出結果:

這裡也可以指定頁籤讀取資料

4、如果想讀取所有頁籤的值,將sheet_name指定成None

import pandas as pd

df3=pd.read_excel("test1.xlsx",sheet_name=None)
print(df3)

 輸出結果:

5、不指定sheet_name時,預設讀取第一個頁籤資料

import pandas as pd

df4=pd.read_excel("test1.xlsx")
print(df4)

輸出結果:

b、Header:是標題行,透過指定具體的行索引,將該行作為資料的標題行,也就是整個資料的列名。預設首行資料(0-index)作為標題行,如果傳入的是一個整數列表,那這些行將組合成一個多級列索引。沒有標題行使用header=None

import pandas as pd

df5=pd.read_excel("test1.xlsx",sheet_name=0,header=[0,1])
print(df5)

執行結果:

如果是多表頭

import pandas as pd
df5=pd.read_excel("test1.xlsx",sheet_name=0,header=[0,1])
print(df5)

執行結果:

c、 Names:指定列名的列表,如果資料檔案中不包含列名,透過names指定列名,同時應該設定header=None。Names中不允許有重複值。

import pandas as pd
df6=pd.read_excel("test1.xlsx",sheet_name=0,header=0,names=["cols1","cols2","cols3"])
print(df6)

直接使用names進行指定會顯示所有的列,包括無效選中列

d、usecols:要解析的列。預設值None所有列進行解析。使用usecols可以大大加快解析時間並降低記憶體使用率。

import pandas as pd
df7=pd.read_excel("test1.xlsx",sheet_name=0,header=0,usecols=["cols1","cols2","cols3"])
print(df7)

e、 skiprows:可以選擇跳過的列

import pandas as pd
df8=pd.read_excel("test1.xlsx",sheet_name=0,header=0,skiprows=[1,3])
print(df8)

 可以看到輸出的行中跳過了第1行和第3行

三、pandas資料結構