用代码完成此操作lianjia1.csv是一个数据集对它进行一下操作(1)对数据集进行清洗处理,包括数据缺失值与异常处理、数据属性的规约、数据清洗和变换,把数据处理成可使用的数据(Data); (2)利用已预处理的数据(Data),基于相应的算法分析模型,从适当的角度对链家二手房交易数据做分析; (3)针对分析结果,给出相应的解释说明,提供一定的决策分析支持信息。
时间: 2023-12-03 09:42:35 浏览: 30
以下是Python代码实现对lianjia1.csv数据集进行清洗和分析:
1. 数据清洗和变换
首先导入需要的库和数据集:
```python
import pandas as pd
import numpy as np
lianjia = pd.read_csv('lianjia1.csv', encoding='utf-8')
```
查看数据集的基本信息:
```python
lianjia.info()
```
结果显示该数据集有 23677 条数据,其中有三个属性(Size、Price、Year)有缺失值:
```text
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 23677 entries, 0 to 23676
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Community 23677 non-null object
1 Layout 23677 non-null object
2 Size 23564 non-null float64
3 Direction 23677 non-null object
4 Renovation 23677 non-null object
5 Price 23677 non-null float64
6 Year 23674 non-null float64
dtypes: float64(3), object(4)
memory usage: 1.3+ MB
```
对于缺失值,我们可以选择删除或者填充。这里选择填充:将缺失值用均值进行填充。对于异常值,我们选择直接删除。
```python
# 删除异常值
lianjia = lianjia.drop(lianjia[(lianjia['Size'] > 1000) | (lianjia['Price'] > 10000)].index)
# 填充缺失值
lianjia['Size'] = lianjia['Size'].fillna(lianjia['Size'].mean())
lianjia['Year'] = lianjia['Year'].fillna(lianjia['Year'].mean())
# 将Year属性转化为整型
lianjia['Year'] = lianjia['Year'].astype(int)
```
2. 分析模型和决策分析支持
基于数据清洗和变换后得到的数据集,我们可以对其进行分析。这里我们以 Size 和 Price 为主要属性,利用散点图和热力图展示其之间的关系。
```python
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
# 散点图
sns.scatterplot(x='Size', y='Price', data=lianjia, alpha=0.5)
# 热力图
sns.kdeplot(x=lianjia['Size'], y=lianjia['Price'], cmap="Blues", shade=True, shade_lowest=False)
plt.show()
```
结果显示 Size 和 Price 之间存在着一定的正相关性:房屋面积越大,售价越高。
通过以上分析,我们可以得出一些决策分析支持信息,例如:
- 对于购房者来说,选择面积适中的房屋,可以在保证舒适居住的情况下,节省一部分的购房成本;
- 对于房地产开发商来说,可以根据市场需求,开发更多满足中等收入阶层需求的住宅,以获得更多的利润。