过滤Excel文件并将结果输出到另一个Excel

时间:2015-10-30 18:19:12

标签: python excel xlsxwriter

我目前正在为我学校的一个俱乐部做一个小项目。如果学生超过基于班级(新生,二年级,初中和高年级)的截止点,则可以过滤学生的GPA。

这是一个简单的例子;假设我有以下.xlsx文件:

GPA1

因此,根据他们的学分,他们是课程的一部分。如果他们有x < 30点数他们是大一新生,x =< 59 && x >= 30他们是大二学生,x =< 89 && x >= 60他们是大三学生;如果他们有x >= 90学分他们是大四学生。 / p>

因此,每个班级的GPA截止日期不同。这些是截止日期:

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

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

GPA2

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

我只需要了解如何从此输入的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

如何正确获取Credit Column和GPA列上的信息,然后过滤?

1 个答案:

答案 0 :(得分:2)

您可以使用名为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:]