为了账号安全,请及时绑定邮箱和手机立即绑定

如何将我的表及其列标题保存在 csv 中?

如何将我的表及其列标题保存在 csv 中?

慕勒3428872 2023-01-04 11:17:29
我无法正确显示我的表格,即输出中缺少标头。但是,如果我从 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   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 循环之前附加标题str_summary.columns.tolist()

或者,这可能会有所帮助[str_summary.columns.tolist(),] + str_summary.values.tolist()。我们在这里所做的是提取标题和值,将它们转换为列表并将它们相加。


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信