我目前正在为我学校的一个俱乐部做一个小项目。如果学生超过基于班级(新生,二年级,初中和高年级)的截止点,则可以过滤学生的GPA。
这是一个简单的例子;假设我有以下.xlsx文件:
因此,根据他们的学分,他们是课程的一部分。如果他们有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 所以在我们的情况下,如果我们要过滤这些数据,我们的输出将是:
我一直在学习如何使用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列上的信息,然后过滤?
答案 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:]