筛选Excel文件并将结果输出到另一个Excel中

我目前正在为我学校的一个俱乐部做一个小项目。 这个想法是过滤学生的GPA,如果他们超过基于他们的阶级(新生,大二,初中和高中)的截止点。

这是一个简单的例子。 比方说,我有以下.xlsx文件:

GPA1

所以根据他们的学分,他们是class级的一部分。 如果他们有x < 30学分,他们是新生, x =< 59 && x >= 30他们是二年级, x =< 89 && x >= 60他们是一个初中,如果他们有x >= 90学分他们是一个高级的。

所以每个class的GPA截止时间是不一样的。 这些是切断:

  • x < 30 )新生:1.5
  • x =< 59 && x >= 30 )大二:2.0
  • x =< 89 && x >= 60 )初中:2.5
  • x >= 90 )高级:3.0

所以在我们的情况下,如果我们要过滤这个数据,我们的输出是:

GPA2

我一直在学习如何使用xlsxwriter,但我不确定是否有一个简单的方法来过滤这个简单的东西。

我只需要了解如何从这个input的Excel文件读取数据并读取正确的列进行过滤。

这是我相信可以工作的一种方式来过滤(只是我嘲笑的伪代码):

  for row_line in credits_column: grade_level = column_line[1] #This would be our Credits Column #check the grade level #Check if they're a Senior if grade_level >= 90: if gpa_level >= 3.0: #Keep this row! else: #Hide/Delete this row! #Check if they're a Junior elif grade_level =< 89 && grade_level >= 60: if gpa_level >= 2.5: #Keep this row! else: #Hide/Delete this row! elif grade_level =< 59 && grade_level >= 30: if gpa_level >= 2.0: #Keep this row! else: #Hide/Delete this row! elif grade_level < 30: if gpa_level >= 1.5: #Keep this row! else: #Hide/Delete this row. # Move on to the next worksheet row. row += 1 

我怎样才能正确地获取信贷栏和GPA栏的信息,然后过滤?

您可以使用名为xlrd的模块。 你可以使用下面的命令来安装xldd:

 pip install xlrd 

以下是从xlsx文件中读取数据的步骤。 我假设你知道文件中列的索引。 对于这个练习,我假设他们在A,B和C列:

  import xlrd #First open the workbook wb = xlrd.open_workbook('path to your file.xlsx') #Then select the sheet. Replace the sheet1 with name of your sheet sheet = wb.sheet_by_name('Sheet1') #Then get values of each column. Excuse first item which is header names = sheet.col_values(0)[1:] credits = sheet.col_values(1)[1:] GPA = sheet.col_values(2)[1:]