[英]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.