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()

Pandas 批量提取Excel文件,分析并可视化显示_第1张图片

你可能感兴趣的:(Python,Pandas学习)