我無法正確顯示我的表格,即輸出中缺少標頭。但是,如果我從 SQL 打印原件,它是可用的。我不準確地理解 iterrows 是如何工作的,因為我認為正是在那時標題丟失了。有人會幫我解決這個問題嗎,或者是否還有其他出路。最初,我可以通過將 SQL 數據轉換為 csv 來執(zhí)行此操作,然后我將 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 GRDEAGLE 0 0 0 0 2 2 1 4 5 11 15 7 0 0 47 3.1064 DHAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 DTOTAL 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 DHAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 DTOTAL 0 0 0 0 3 2 4 7 9 18 32 18 0 0 93 2.8925 D
1 回答

不負相思意
TA貢獻1777條經驗 獲得超10個贊
Pandasiterrows()
返回一行,這是一個 pandas 系列。其中行的索引是原始數據框中的列。您可以tdata
在使用開始 for 循環(huán)之前附加標題str_summary.columns.tolist()
。
或者,這可能會有所幫助[str_summary.columns.tolist(),] + str_summary.values.tolist()
。我們在這里所做的是提取標題和值,將它們轉換為列表并將它們相加。
添加回答
舉報
0/150
提交
取消