当键不在第一行时,使用python读取excel

时间:2018-01-05 22:02:44

标签: python excel

我正在尝试在具有相同格式的文件夹中读取大量excel文件。我的密钥不在第一行,所以当我运行这段代码时,我给了我

KeyError: '"A"'

它也很棘手,因为我的专栏名称是" A" (带引号)。如何让它遍历每个文件并读取每个文件中每列的数据?Excel Format

import numpy as np
import scipy.io as sio
import scipy 
import matplotlib.pyplot as plt
import os
import pandas as pd
from matplotlib import gridspec
from tkinter import filedialog
from tkinter import *
import scipy.stats as st


#GUI
root=Tk()
root.withdraw() #closes tkinter window pop-up
path=filedialog.askdirectory(parent=root,title='Choose a folder')
path=path+'/'

print('Folder Selected',path)
files=os.listdir(path)
length=len(files)

print('Files inside the folder',files)

Files=[]

for s in os.listdir(path):
    Files.append(pd.read_excel(path+s))

#initialize arrays
A=[None]*length
B=[None]*length
C=[None]*length

for filenumber in range(0,length):  
    A[filenumber]         = Files[filenumber]['"A"']
    B[filenumber]      = Files[filenumber]['"B"']
    C[filenumber]         = Files[filenumber]['"C"']

2 个答案:

答案 0 :(得分:2)

您可以选择要用于列标题的行:

Files.append(pd.read_excel(path+s), header=2);
例如,

从第3行读取标题

参见文档: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

答案 1 :(得分:0)

我能够读取列并跳过前两行。然后我能够轻松索引不同的键

  private hostEl: HTMLElement;

  constructor(el: ElementRef) {
      this.hostEl = el.nativeElement;
  }

  ngOnInit() {
    window.addEventListener('scroll', this.scroll, true);
  }

  ngOnDestroy() {
      window.removeEventListener('scroll', this.scroll, true);
  }

  //Get the header
  let header = (document.querySelector('.header') as HTMLInputElement);

  if (window.pageYOffset >= 100){
      header.classList.add('sticky');
  } else {
      header.classList.remove('sticky');
  }