python将学生基本信息表“xx.xlsx”和期末考试成绩表‘cj.xlsx’读取并保存在df1中。
时间: 2024-06-11 22:05:45 浏览: 215
需要使用pandas库中的read_excel函数来读取Excel文件。代码如下:
```
import pandas as pd
# 读取学生基本信息表
df_info = pd.read_excel('xx.xlsx')
# 读取期末考试成绩表
df_score = pd.read_excel('cj.xlsx')
# 合并两个表格,按学号进行连接
df1 = pd.merge(df_info, df_score, on='学号')
```
其中,'学号'是两个表格中共有的列,用来进行连接的依据。读取后的数据保存在df1中。
相关问题
将“大数据1年级数据.xlsx”、“大数据1年级朋友数据.xlsx”、“大数据1年级爱好数据.xlsx”、“大数据1年级专业成绩数据.xlsx”导入到python中。 去除各个表格中的重复数据。 将所有成绩数据中的nan替换为这门成绩的平均成绩,如果成绩有效数据少于1门的学生直接删除。 “大数据1年级专业成绩数据.xlsx”表增加列“专业成绩总分”,“专业成绩平均分”分别记录每名同学专业成绩的总分和平均分。 根据“大数据1年级朋友数据.xlsx”、“大数据1年级爱好数据.xlsx”、“大数据1年级专业成绩数据.xlsx”填充完整“大数据1年级数据.xlsx”中的所有数据并将这些数据导入到“大数据1年级数据(完整数据).xlsx”中。 按班级拆分表格,按班号分为一到四班计算本班每一门成绩的平均值,将成绩导出到”学号+姓名统计大数据21N班成绩信息.xlsx”文件中。 本班不及格数量,统计本班不及格成绩最多的一门课程是什么课程,将结果导出到一个名称为”学号+姓名统计本班信息.txt”文本文件中。 统计自己的寝室的平均成绩,不及格门数,将信息导出到一个名称为”学号+姓名统计寝室信息.csv”文件中。 统计自己的平均成绩,不及格门数,将信息导出到一个名称为”学号+姓名统计本人信息.csv”文件中。
好的,我明白了您的问题。这是一个数据处理的任务,需要使用Python中的pandas和openpyxl模块进行操作。以下是大致的代码实现:
```
import pandas as pd
from openpyxl import load_workbook
# 读取excel文件
df1 = pd.read_excel('大数据1年级数据.xlsx')
df2 = pd.read_excel('大数据1年级朋友数据.xlsx')
df3 = pd.read_excel('大数据1年级爱好数据.xlsx')
df4 = pd.read_excel('大数据1年级专业成绩数据.xlsx')
# 去除重复数据
df1.drop_duplicates(inplace=True)
df2.drop_duplicates(inplace=True)
df3.drop_duplicates(inplace=True)
df4.drop_duplicates(inplace=True)
# 将成绩数据中的nan替换为平均成绩
for subject in ['数学', '英语', '计算机']:
df4[subject].fillna(df4[subject].mean(), inplace=True)
# 删除成绩有效数据少于1门的学生
df4 = df4[df4[['数学', '英语', '计算机']].count(axis=1) >= 1]
# 增加列“专业成绩总分”和“专业成绩平均分”
df4['专业成绩总分'] = df4[['数学', '英语', '计算机']].sum(axis=1)
df4['专业成绩平均分'] = df4[['数学', '英语', '计算机']].mean(axis=1)
# 填充完整数据并导出到新文件
df1 = df1.merge(df2, on='学号', how='outer')
df1 = df1.merge(df3, on='学号', how='outer')
df1 = df1.merge(df4, on='学号', how='outer')
df1.to_excel('大数据1年级数据(完整数据).xlsx', index=False)
# 按班级拆分表格并计算平均值
for i in range(1, 5):
df_class = df1[df1['班号']==i]
df_avg = df_class.groupby('姓名')[['数学', '英语', '计算机']].mean()
df_avg.to_excel(f'学号+姓名统计大数据21N{i}班成绩信息.xlsx')
# 统计本班不及格成绩最多的一门课程
df_fail = df_class[['数学', '英语', '计算机']].apply(lambda x: x<60)
df_fail_count = df_fail.sum()
max_fail = df_fail_count.idxmax()
with open(f'学号+姓名统计本班信息.txt', 'w') as f:
f.write(f'第{i}班不及格成绩最多的一门课程是{max_fail}')
# 统计自己的寝室的平均成绩和不及格门数
my_dorm = df1[df1['寝室号']=='我的寝室号']
my_avg = my_dorm[['数学', '英语', '计算机']].mean()
my_fail_count = (my_dorm[['数学', '英语', '计算机']] < 60).sum()
my_info = pd.concat([my_avg, my_fail_count], axis=0, keys=['平均成绩', '不及格门数'])
my_info.to_csv('学号+姓名统计寝室信息.csv')
# 统计自己的平均成绩和不及格门数
my_avg = df1[df1['学号']=='我的学号'][['数学', '英语', '计算机']].mean()
my_fail_count = (df1[df1['学号']=='我的学号'][['数学', '英语', '计算机']] < 60).sum()
my_info = pd.concat([my_avg, my_fail_count], axis=0, keys=['平均成绩', '不及格门数'])
my_info.to_csv('学号+姓名统计本人信息.csv')
```
请注意,代码中的文件名和数据列名应根据实际情况进行修改。
1.import pandas as pd 2 4.df=pdread_excel("成绩xlsx”sheet name='Sheet1) 5.df1 =("缺考”"缓考") 6.df1.to_excel("replace result.xlsx")
这段代码的作用是读取一个名为“成绩.xlsx”的 Excel 文件中的“Sheet1”工作表中的数据,并将其中的“缺考”和“缓考”两个字符串替换为一个名为“replace result.xlsx”的 Excel 文件中的新工作表。具体来说,代码的第一行导入了 pandas 库并将其重命名为 pd,以便在代码中更方便地使用。第四行代码将 Excel 文件中的数据读取到一个名为 df 的 pandas DataFrame 对象中。第五行代码将 DataFrame 中所有包含“缺考”或“缓考”的单元格替换为 df1 变量中的字符串。最后,第六行代码将替换后的 DataFrame 保存到名为“replace result.xlsx”的 Excel 文件中的新工作表。
阅读全文