繁体   English   中英

如何使用 Pandas 创建这个 dataframe?

[英]How to create this dataframe using Pandas?

请看这个——

我想在 python 中使用 pandas 创建一个与此类似的表? 任何人都可以指导吗? 无法理解如何添加对应于两列(“学生 ID”和“课程 ID”)的“总分”文本。

谢谢

据我所知,pandas 并不像 Excel/HTML 那样真正支持跨多行的合并单元格/单元格。 包含单个列的总行的熊猫式方法如下所示:

import pandas as pd

columns = ['Student ID', 'Course ID', 'Marks']
data = [(103, 201, 67), (103, 203, 67), (103, 204, 89)]
df = pd.DataFrame(data, columns=columns)
df.at['Total marks', 'Marks'] = df['Marks'].sum()

print(df)

(根据这个答案

这给了你:

                Student ID  Course ID  Marks
0                    103.0      201.0   67.0
1                    103.0      203.0   67.0
2                    103.0      204.0   89.0
Total marks            NaN        NaN  223.0

For HTML output like the image you provided, it looks like you would have to edit the HTML after exporting from pandas ( this thread talks about columns but I believe the same applies for merging cells in rows).

假设您希望将合并单元格的 dataframe (df) 导出到 excel,然后尝试此代码;

writer = pd.ExcelWriter(r"C:\Users\pandas_excel_export.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')

workbook  = writer.book
worksheet = writer.sheets['Sheet1']
# Edit below code if required (coloring, bold etc.)
merge_format = workbook.add_format({
    'bold': 1,
    'border': 1,
    'align': 'center',
    'valign': 'vcenter',
    'fg_color': 'yellow'})
worksheet.merge_range('B5:C5', 'Total Marks', merge_format)
writer.save()

希望这可以帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM