1. 程式人生 > >pandas資料分析輕鬆學(二)——讀取Excel檔案

pandas資料分析輕鬆學(二)——讀取Excel檔案

該系列部落格,均來自劉鐵猛老師的視訊內容,網址如下:

一、IDE環境:anaconda+PyCharm,python3.6

二、新建.py檔案(注意檔案命名)

三、具體讀取資料操作如下:

  • Excel檔案頭部和尾部行資料的讀取
import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/People.xlsx')  # 讀取檔案資料,返回一個指向資料物件的引用
print(people.shape)  # 打印出people物件的屬性(有幾行幾列)
print(people.head(3))  # 傳遞形參為空時,預設打印表的前五行
print('===============================')
print(people.tail(3))  # 傳遞形參為空時,預設打印表的前五行

 執行結果如下: 

  • Excel檔案列名稱的讀取
import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/People.xlsx')  # 讀取檔案資料,返回一個指向資料物件的引用
print(people.columns)#讀取檔案的列名

執行結果如下:

 

但如果Excel檔案中有髒資料,比如第一行是髒資料,從第二行開始,才是我們所需的資料,如下圖:  

應該如何呼叫pandas庫實現所需資料的訪問???(如下圖所示的解決方法,設定讀取檔案的屬性即可)

import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/People2.xlsx',header=1)#header預設為0,此處設定為1   
print(people.columns)#讀取檔案的列名

執行結果如下 

 

注意:1、如果Excel檔案第一行為空,那麼不指定header=1也能正確答應header的屬性值

           2、只要第一行資料錯誤(髒資料),那麼就必須指定資料讀取的第一行屬性值,也就是“header”屬性了

           3、若沒有列名,那麼就設定“header=None”,系統就會自動生成一個從0開始的整數列表作為列名,如下圖所示:

import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/People2.xlsx',header=None)  # 讀取檔案資料,返回一個指向資料物件的引用
print(people.columns)#讀取檔案的列名

 

我們可以人為的設定表的列名,並儲存所需檔案,如下所示:

import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/People2.xlsx',header=None)  # 讀取檔案資料,返回一個指向資料物件的引用
people.columns=['Id','Type','Title','FirstName','MiddleName','LastName']#設定表的列名
people=people.set_index('Id')#設定Id為索引,生成新的物件後,返回一個指向people的物件
print(people.columns)#讀取檔案的列名
people.to_excel('C:/Users/Dongxiao Yuan/Desktop/Output.xlsx')#儲存新的檔案
print('Done!!')



#people=people.set_index('Id')程式碼可用下面的程式碼來替換
#people.set_index('Id',inplace=True)

執行結果如下(Id已經消失,因為它已經變成index了): 

 

people.set_index('Id',inplace=True)程式碼第二個引數指在原始檔基礎上改動並儲存

注意:pandas中把index和columns分開對待,所以列印時沒有Id這一列

  •  再次開啟檔案時,如果知道哪一列是索引,必須指明,不然pandas又會給自動生成從0開始的整數索引,如下圖:

import pandas as pd

people = pd.read_excel('C:/Users/Dongxiao Yuan/Desktop/Output.xlsx',index_col='Id')  # 讀取檔案資料,返回一個指向資料物件的引用
print(people.columns)#讀取檔案的列名
people.to_excel('C:/Users/Dongxiao Yuan/Desktop/Output4.xlsx')#儲存新的檔案
print('Done!!')

四、小結

1、每次執行程式,必須保證檔案的關閉,不然會出現意料之外的結果或者錯誤

2、本小結主要講了Excel檔案屬性的設定,包括:

      開啟屬性:header=1/None,index_col=‘Id’

      檔案屬性設定:people.columns=['Id','Type','Title','FirstName','MiddleName','LastName']#設定表的列名

                               people=people.set_index('Id')#設定Id為索引,生成新的物件後,返回一個指向people的物件

                               people.set_index('Id',inplace=True)

      檔案屬性:people.shape,people.head(3),people.tail(3)

                       print(people.columns)#讀取檔案的列名