1. 创建一个8行5列的DataFrame对象,列名为[‘Num’, ‘Name’,‘C++’, ‘Java’, ‘Python’],分别代表学号,姓名,C++成绩,Java成绩,Python成绩。所有成绩要求分布在[50,100)区间,是随机生成的整数。(以下所述的行号和列号均代表行列索引的默认编号。请使用本章所学的知识按顺序解决这些问题,不要投机取巧!) (1) 复制第4个学生的全部信息,把它作为新行追加到表尾; (2) 将(3, 4)、(6, 3)、(5, 2)、(2, 3)、(1, 0)这几个位置上的元素置为NaN; (3) 输出所有包含缺失值的行; (4) 删除学号为缺失值的行; (5) 将成绩列上的所有缺失值用其同列上的前一个和后一个成绩的平均值替换; (6) 检测是否存在重复行;如果存在,保留最后一行,删除其余行; (7) 重置行索引; (8) 在2,3,4列上分别找到大于60的最小值,然后把这些值用55替换(如果某列上有多个最小值,则全部替换); (9) 输出Java成绩不及格的学生的信息(学号,姓名,Java成绩); (10) 输出“挂科”学生的全部信息。 (11) 自己人工仔细检查以上每一道小题的操作结果是否正确。如果确认无误,用DataFrame的to_excel方法将数据存储到“Scores.xlsx”文件中,用Excel打开并查看数据是否正确。如果以上都正确,最后输出 :“我做对了!”
时间: 2023-11-27 21:53:53 浏览: 281
```python
import pandas as pd
import numpy as np
# 创建DataFrame对象
df = pd.DataFrame(np.random.randint(50, 100, size=(8, 3)), columns=['C++', 'Java', 'Python'])
df.insert(0, 'Num', range(8))
names = ['Alice', 'Bob', 'Charlie', 'David', 'Eva', 'Frank', 'Grace', 'Helen']
df.insert(1, 'Name', names)
# 复制第4个学生的全部信息,追加到表尾
df = df.append(df.iloc[3], ignore_index=True)
# 将指定位置上的元素置为NaN
df.iloc[[3, 4, 5, 2, 1], [4, 3, 2, 3, 0]] = np.nan
# 输出包含缺失值的行
print(df[df.isnull().any(axis=1)])
# 删除学号为缺失值的行
df.dropna(subset=['Num'], inplace=True)
# 将成绩列上的所有缺失值用其同列上的前一个和后一个成绩的平均值替换
df.fillna(method='ffill', inplace=True)
df.fillna(method='bfill', inplace=True)
# 删除重复行
df.drop_duplicates(keep='last', inplace=True)
# 重置行索引
df.reset_index(drop=True, inplace=True)
# 将大于60的最小值用55替换
cols = ['C++', 'Java', 'Python']
for col in cols:
min_val = df[df[col] > 60][col].min()
df[col].replace(min_val, 55, inplace=True)
# 输出Java成绩不及格的学生的信息
print(df[df['Java'] < 60][['Num', 'Name', 'Java']])
# 输出挂科学生的全部信息
print(df[(df['C++'] < 60) | (df['Java'] < 60) | (df['Python'] < 60)])
# 将数据存储到“Scores.xlsx”文件中
df.to_excel('Scores.xlsx', index=False)
print("我做对了!")
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![c](https://img-home.csdnimg.cn/images/20250102104920.png)