《Python数据分析与应用》A卷期末考试试卷涵盖了课程中涉及的关键知识点和技能要求,旨在评估学生对Python编程语言在数据处理、分析及可视化方面的掌握程度。
### Python数据分析与应用知识点解析
#### 一、导包及读取数据(5 分)
- **知识点1:Python基础库导入**
- **numpy**: 数值计算基础库。
- **pandas**: 提供高性能易用的数据结构和数据分析工具。
- **matplotlib**: 常用的数据可视化库。
- **知识点2:读取Excel文件**
- 使用`pandas`的`read_excel`函数读取`.xlsx`格式的数据。
- 示例代码:
```python
import pandas as pd; df = pd.read_excel(二手房数据.xlsx)
```
#### 二、对数据进行预处理(30 分)
- **知识点3:删除重复值**
- 使用`df.drop_duplicates()`删除DataFrame中的重复行。
- 参数`keep=first`表示保留第一次出现的行,默认保留最后一次出现的行。
- **知识点4:选择性删除列**
- 使用`df.drop(columns=[房子信息链接, 图片链接])`删除指定列。
- 注意检查列名是否正确,避免因拼写错误导致无法删除。
- **知识点5:查看数据前几行**
- 使用`df.head()`查看数据前五行,便于快速了解数据结构。
- **知识点6:字符串拆分并创建新列**
- 假设原始列名为`houseInfo`,可以使用`str.split`方法结合`expand=True`参数来拆分字符串并创建多个新列。
- 示例代码:
```python
df[[houseLevel, houseBuilt, houseLayout, houseArea, houseOrientation]] = df[houseInfo].str.split(,, expand=True)
```
- 注意:需要根据实际数据结构调整拆分符。
- **知识点7:处理缺失值**
- **查看缺失值**:`df.isnull().sum()`用于统计每一列的缺失值数量。
- **删除缺失值**:`df.dropna()`默认删除包含缺失值的所有行。
- **填充缺失值**:`df.fillna(unknown)`将所有缺失值替换为unknown。
- 根据缺失值的数量和业务需求选择合适的方法。
#### 三、统计不同楼层位置的房屋单价的均值并排序(10 分)
- **知识点8:分组并计算均值**
- 使用`groupby`方法按楼层位置(`houseLevel`)分组,然后使用`mean()`计算每组的平均值。
- 示例代码:
```python
df.groupby(houseLevel)[单价].mean().sort_values(ascending=False)
```
#### 四、综合数据分析(40 分)
- **知识点9:按年份分组并统计均值**
- 将`houseBuilt`列转换为整数类型,并根据不同的年份分组计算单价均值。
- 示例代码:
```python
df[houseBuilt] = df[houseBuilt].astype(int); df.groupby(houseBuilt)[单价].mean()
```
- 找出历史最低单价年份:`df.groupby(houseBuilt)[单价].mean().idxmin()`。
- **知识点10:新建列判断建房年限**
- 使用`datetime`库获取当前年份,计算建房至今的年数。
- 示例代码:
```python
from datetime import datetime; current_year = datetime.now().year; df[isOld] = (current_year - df[houseBuilt]) >= 3
```
- **知识点11:绘制折线图展示年份与单价关系**
- 使用`matplotlib`绘制折线图,x轴为年份,y轴为单价均值。
- 示例代码:
```python
import matplotlib.pyplot as plt
grouped_data = df.groupby(houseBuilt)[单价].mean()
plt.plot(grouped_data.index, grouped_data.values)
plt.xlabel(建房年份)
plt.ylabel(单价均值)
plt.title(不同年份房屋单价变化趋势)
plt.show()
```
#### 五、比较特定条件下的房屋单价均值(15 分)
- **知识点12:筛选特定条件数据**
- 使用`df.loc`或`df.query`方法筛选符合条件的数据。
- 示例代码:
```python
df_ip = df[(df[区域] == 岳麓区) & ((df[houseLayout] == 3室2厅) | (df[houseLayout] == 4室1厅))]
```
- 计算单价均值并比较差距:`df_ip.groupby(houseLayout)[单价].mean()`
通过以上知识点的学习,学生能够掌握利用Python进行数据清洗、处理和可视化的基本技能,为后续深入学习数据分析打下坚实的基础。