计算每个学生成绩最相似的10个学生 有一个学生成绩的csv文件(学生成绩.csv),部分数据如下图所示: 1) 请使用pandas读取学生成绩,并打印前5行; 2) 打印学生成绩的形状; 3) 计算每个学生成绩最相似的10个学生,并保存到excel表格当中。
时间: 2024-02-03 15:14:39 浏览: 80
测试所用的学生成绩.csv
好的,我们来一步步实现这个需求。
首先是第一步,使用 Pandas 读取学生成绩文件并打印前5行。请确保你已经安装了 Pandas 库。下面是代码实现:
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('学生成绩.csv')
# 打印前5行
print(df.head())
```
接下来是第二步,打印学生成绩的形状。代码如下:
```python
# 打印学生成绩的形状
print(df.shape)
```
最后是第三步,计算每个学生成绩最相似的10个学生,并保存到 Excel 表格中。代码如下:
```python
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# 计算相似度矩阵
similarity_matrix = cosine_similarity(df.values[:, 1:])
# 取出每个学生最相似的10个学生的索引
top_10_similar_students = np.argsort(similarity_matrix, axis=1)[:, -11:-1]
# 将结果保存到Excel表格中
result_df = pd.DataFrame(top_10_similar_students, columns=[f'top_{i}' for i in range(1, 11)])
result_df.to_excel('每个学生成绩最相似的10个学生.xlsx', index=False)
```
完整代码如下:
```python
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# 读取csv文件
df = pd.read_csv('学生成绩.csv')
# 打印前5行
print(df.head())
# 打印学生成绩的形状
print(df.shape)
# 计算相似度矩阵
similarity_matrix = cosine_similarity(df.values[:, 1:])
# 取出每个学生最相似的10个学生的索引
top_10_similar_students = np.argsort(similarity_matrix, axis=1)[:, -11:-1]
# 将结果保存到Excel表格中
result_df = pd.DataFrame(top_10_similar_students, columns=[f'top_{i}' for i in range(1, 11)])
result_df.to_excel('每个学生成绩最相似的10个学生.xlsx', index=False)
```
阅读全文