时间:2021年12月23日
python数据分析实战项目—10000条北京各大区二手房面积信息可视化分析(附源码)
python版本:Python 3.6.1
python开发工具:JetBrains PyCharm 2018.3.6 x64
第三方库:pandas ;matplotlib ;seaborn
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.style.use('fivethirtyeight') sns.set_style({'font.sans-serif': ['simhei', 'Arial']}) lianjia_df = pd.read_csv('lianjia.csv') # 添加房屋均价 df = lianjia_df.copy() df['PerPrice'] = round(lianjia_df['Price'] / lianjia_df['Size'], 2) # 重新摆放列位置 columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price'] df = pd.DataFrame(df, columns=columns) f, [ax1, ax2] = plt.subplots(1, 2, figsize=(15, 5)) # 建房面积分布 sns.distplot(df['Size'], bins=20, ax=ax1, color='r') sns.kdeplot(df['Size'], shade=False, ax=ax1) # 建房面积与出售价格的关系 sns.regplot(x='Size', y='Price', data=df, ax=ax2) plt.show()
从第一个面积柱状图中可以看到,房屋面积最多的是100平米左右的,在200平米以上的也有一些
从第二个面积与价格图中可以看到,有两处数据异常,第一处是面积少价格却很高,第二处是面积大于1000
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.style.use('fivethirtyeight') sns.set_style({'font.sans-serif': ['simhei', 'Arial']}) lianjia_df = pd.read_csv('lianjia.csv') # 添加房屋均价 df = lianjia_df.copy() df['PerPrice'] = round(lianjia_df['Price'] / lianjia_df['Size'], 2) # 重新摆放列位置 columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price'] df = pd.DataFrame(df, columns=columns) # display(df.loc[df['Size'] < 10]) # 都是别墅,不在分析范围内,排除 # display(df.loc[df['Size'] > 1000]) # 1019平,可能是商品房,排除 df = df[(df['Layout'] != '叠拼别墅') & (df['Size'] < 1000)] f, [ax1, ax2] = plt.subplots(1, 2, figsize=(15, 5)) # 建房面积分布 sns.distplot(df['Size'], bins=20, ax=ax1, color='r') sns.kdeplot(df['Size'], shade=False, ax=ax1) # 建房面积与出售价格的关系 sns.regplot(x='Size', y='Price', data=df, ax=ax2) plt.show()
优化后异常数据可视化时就剔除掉了,对比有异常数据的图片
https://url71.ctfile.com/f/13238771-530323628-1950bb
(访问密码:8835)
这里主要运用了python的进行数据分析时,注意从图中分析异常数据,在对相关数据进行过滤掉