1. 程式人生 > >Pandas 批量提取Excel檔案,分析並可視化顯示

Pandas 批量提取Excel檔案,分析並可視化顯示

Topic

本文主要是使用Pandas批量處理Excel檔案,使用read_excel函式獲取指定列的資料,然後使用concat功能把所有檔案合併,合併完成的資料使用groupby函式按兩個Key分組求取平均值,最後視覺化畫圖;

1. 匯入使用到的模組 Numpy,Matplotlib,Pandas OS

# -*- coding:UTF-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os

2. 批量獲取Excel檔案,並把需要的資料合併

#獲取指定資料夾下所有Excel檔名稱並傳送給List1
List1 = os.listdir('c:\\Users\\Zstrong\\Desktop\\') #定義DataFrame變數用來存放獲取的所有資料 Result = pd.DataFrame() #for迴圈逐個讀取每個Excel裡面的資料 for i in List1: if(i[-4:]=='xlsx'):#篩選只讀取xlsx結尾的檔案 #read_excel方法,引數sheet_name表示讀取的工作簿,skiprows表示忽略幾行,usecols表示讀取的制定的列 EXCEL1 = pd.read_excel(r'C:\\Users\\Zstrong\\Desktop\\%s'
%i,sheet_name ='Final AT',skiprows=2,usecols=[2,36,37,60]) #concat方法合併多個檔案的資料 Result = pd.concat([Result,EXCEL1],ignore_index=True) #檢視獲取的結果 Result.tail()
Model EQ-55 Time-55 Defocus
567 PA 8APPH16 2018-10-22 13:03:23 0.000000
568 PA 8APPH16 2018-10-22 04:25:55 0.000000
569 PA 8APPH16 2018-10-22 02:56:26 0.002083
570 PA 8APPH16 2018-10-22 01:57:12 0.000000
571 PA 8APPH16 2018-10-22 05:10:15 0.000000

3. 分組處理資料,視覺化展示

#篩選資料來源中的一部分處理
Result1 = Result.loc[Result['Model']=='G1']
#資料列Defocus根據key1:Time-55和key2:EQ-55分組,獲取分組後的平均值
Result2 = Result1['Defocus'].groupby([Result1['Time-55'],Result1['EQ-55']]).mean().unstack()
Result2.plot()

在這裡插入圖片描述