预先安装 xlrd,xlwt,xlutils,openpyxl等库,新建“成绩.xls”文件或“成绩.xlsx
文件,在Sheet1中输入学号、姓名等信息,如下图所示,在F列计算每位同学的平均分。
运行结果:
import pandas as pd
#读取成绩数据
df = pd.read_excel(r'成绩.xlsx')
#计算平均分,保留一位小数
df['平均分']=round((df['C语言']+df['高数']+df['英语'])/3,1) #保留一位小数
#将结果重新保存到excel文件中
df.to_excel(r'成绩.xlsx',index=None)
import xlrd<br>
from xlutils.copy import copy
workbook = xlrd.open_workbook(u'有趣装逼每日数据及趋势.xls')
workbooknew = copy(workbook)
ws = workbooknew.get_sheet(0)
ws.write(3, 0, 'changed!')
workbooknew.save(u'有趣装逼每日数据及趋势copy.xls')
我可以提供如下解决方案:
安装所需的库 根据参考资料中提到的顺序,先安装rJava和xlsxjars,再安装xlsx包。如果rJava无法安装,需要安装Java环境。
创建文件并录入信息 利用Python中的pandas库,先安装pandas库。然后可以通过以下代码创建名为“成绩.xlsx”的文件,并在Sheet1中录入学生的学号、姓名等信息:
import pandas as pd
data = { '学号': ['001', '002', '003', '004'], '姓名': ['小明', '小红', '小张', '小王'], '数学成绩': [80, 90, 70, 85], '英语成绩': [70, 95, 75, 80], '语文成绩': [85, 87, 90, 88] } df = pd.DataFrame(data)
writer = pd.ExcelWriter('成绩.xlsx') df.to_excel(writer, index=False, sheet_name='Sheet1') writer.save()
以上代码会在当前工作目录下创建一个名为“成绩.xlsx”的文件,并在Sheet1中录入学生的学号、姓名和各科成绩信息。
import pandas as pd
df = pd.read_excel('成绩.xlsx', sheet_name='Sheet1')
df['平均分'] = df[['数学成绩', '英语成绩', '语文成绩']].mean(axis=1)
writer = pd.ExcelWriter('成绩.xlsx') df.to_excel(writer, index=False, sheet_name='Sheet1') writer.save()
以上代码会将每位同学的平均分计算出来,并写回到名为“成绩.xlsx”的文件中的Sheet1中。
插入柱状图 可以在Excel中选中数据单元格,包含标头,然后在“INSERT”(插入)标签页中找到柱状图,选择需要的样式,如堆积柱状图,即可插入柱状图并查看每位学生的总分统计。
计算空值、最大值、最小值并写入文件 如果需要计算all.xlsx表格中的空值、最大值、最小值,并导出到result.xlsx表格中,可以利用Python中的pandas库,根据以下代码进行操作:
import pandas as pd
df = pd.read_excel('all.xlsx')
null_count = len(df) - df.count() max_data = df.max() min_data = df.min()
null_count.index = ['空值数'] max_data.index = ['最大值'] min_data.index = ['最小值']
writer = pd.ExcelWriter('result.xlsx') pd.concat([null_count, max_data, min_data], axis=1).to_excel(writer) writer.save()
以上代码会计算出all.xlsx表格中的空值数、最大值、最小值,并分别写回到result.xlsx表格中。