我无法正确显示我的表格,即输出中缺少标头。但是,如果我从 SQL 打印原件,它是可用的。我不准确地理解 iterrows 是如何工作的,因为我认为正是在那时标题丢失了。有人会帮我解决这个问题吗,或者是否还有其他出路。最初,我可以通过将 SQL 数据转换为 csv 来执行此操作,然后我将 csv 直接读取到 reportlab 中以获取 pdf。但是,我不想在我的目录中有一个物理 csv 文件,这就是为什么我决定在 SQL 中调用数据库中的数据。
overall_summary = self.choose_class_combo.currentText()+" " + self.choose_term_combo.currentText() + " "+ self.choose_year_combo.currentText() + " for summary"
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
str_summary = pd.read_sql("SELECT * FROM '" + str(overall_summary) + "'", conn)
tdata = []
for index, row in str_summary.iterrows():
rowdata = []
BLANK=row[0]
A1 =row[1]
A2=row[2]
B3=row[3]
B4=row[4]
B5=row[5]
C6=row[6]
C7=row[7]
C8=row[8]
D9=row[9]
D0=row[10]
D1=row[11]
E2=row[12]
X=row[13]
Z = row[14]
TOTAL=row[15]
MEAN=row[16]
GRD=row[17]
rowdata.append(BLANK)
rowdata.append(A1)
rowdata.append(A2)
rowdata.append(B3)
rowdata.append(B4)
rowdata.append(B5)
rowdata.append(C6)
rowdata.append(C7)
rowdata.append(C8)
rowdata.append(D9)
rowdata.append(D0)
rowdata.append(D1)
rowdata.append(E2)
rowdata.append(X)
rowdata.append(Z)
rowdata.append(TOTAL)
rowdata.append(MEAN)
rowdata.append(GRD)
tdata.append(rowdata)
conn.commit()
conn.connect()
这就是 SQL 中的内容,它与我想要的 pdf 输出相同。
SUBJ A A- B+ B B- C+ C C- D+ D D- E X Z TOTAL MEAN GRD
EAGLE 0 0 0 0 2 2 1 4 5 11 15 7 0 0 47 3.1064 D
HAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 D
TOTAL 0 0 0 0 3 2 4 7 9 18 32 18 0 0 93 2.8925 D
我用 iterrows 得到的输出如下。
EAGLE 0 0 0 0 2 2 1 4 5 11 15 7 0 0 47 3.1064 D
HAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 D
TOTAL 0 0 0 0 3 2 4 7 9 18 32 18 0 0 93 2.8925 D
不负相思意
相关分类