如何在csv中保存带有列标题的表?

izj3ouym  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(345)

我无法正确输出表格,即输出中缺少标题。但是,如果我从sql打印原始文件,它是可用的。我不能准确地理解iterrows是如何工作的,因为我认为正是在这一点上,标题丢失了。有没有人能帮我解决这个问题,或者有没有别的办法。最初,我可以将sql数据转换为csv,然后将csv直接读入reportlab以获取pdf。i、 但是,我不想在我的目录中有一个物理csv文件,所以我决定用sql调用数据库中的数据。

  1. overall_summary = self.choose_class_combo.currentText()+" " + self.choose_term_combo.currentText() + " "+ self.choose_year_combo.currentText() + " for summary"
  2. conn = sqlite3.connect('mydb.db')
  3. cur = conn.cursor()
  4. str_summary = pd.read_sql("SELECT * FROM '" + str(overall_summary) + "'", conn)
  5. tdata = []
  6. for index, row in str_summary.iterrows():
  7. rowdata = []
  8. BLANK=row[0]
  9. A1 =row[1]
  10. A2=row[2]
  11. B3=row[3]
  12. B4=row[4]
  13. B5=row[5]
  14. C6=row[6]
  15. C7=row[7]
  16. C8=row[8]
  17. D9=row[9]
  18. D0=row[10]
  19. D1=row[11]
  20. E2=row[12]
  21. X=row[13]
  22. Z = row[14]
  23. TOTAL=row[15]
  24. MEAN=row[16]
  25. GRD=row[17]
  26. rowdata.append(BLANK)
  27. rowdata.append(A1)
  28. rowdata.append(A2)
  29. rowdata.append(B3)
  30. rowdata.append(B4)
  31. rowdata.append(B5)
  32. rowdata.append(C6)
  33. rowdata.append(C7)
  34. rowdata.append(C8)
  35. rowdata.append(D9)
  36. rowdata.append(D0)
  37. rowdata.append(D1)
  38. rowdata.append(E2)
  39. rowdata.append(X)
  40. rowdata.append(Z)
  41. rowdata.append(TOTAL)
  42. rowdata.append(MEAN)
  43. rowdata.append(GRD)
  44. tdata.append(rowdata)
  45. conn.commit()
  46. conn.connect()

这是什么是在sql这是相同的输出,我想在pdf格式。

  1. SUBJ A A- B+ B B- C+ C C- D+ D D- E X Z TOTAL MEAN GRD
  2. EAGLE 0 0 0 0 2 2 1 4 5 11 15 7 0 0 47 3.1064 D
  3. HAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 D
  4. TOTAL 0 0 0 0 3 2 4 7 9 18 32 18 0 0 93 2.8925 D

我从iterrows得到的输出如下。

  1. EAGLE 0 0 0 0 2 2 1 4 5 11 15 7 0 0 47 3.1064 D
  2. HAWK 0 0 0 0 1 0 3 3 4 7 17 11 0 0 46 2.6739 D
  3. TOTAL 0 0 0 0 3 2 4 7 9 18 32 18 0 0 93 2.8925 D
fcy6dtqo

fcy6dtqo1#

Pandas iterrows() 返回一个系列的行。其中,行的索引是原始Dataframe中的列。您可以将标题附加到 tdata 在开始for循环之前,使用 str_summary.columns.tolist() .
或者,这可能会有所帮助 [str_summary.columns.tolist(),] + str_summary.values.tolist() . 我们在这里做的是提取标题和值,将它们转换为列表并将它们添加到一起。

相关问题