Pyechars练习分析二手房数据

直接上代码
import pandas as pd
from pyecharts.charts import Map, Bar, Line, Grid, Pie, Scatter
from pyecharts import options as opts

if __name__ == '__main__':
    """ 分析二手房数据,使用pyecharts进行可视化 """

    # 1.读取数据
    dataDF = pd.read_csv('二手房数据.csv', encoding='GB18030')
    print(dataDF.head().to_string())  # 打印数据前几行

    # 2.查看表格数据,一共有23677条数据
    print(dataDF.describe())  # 打印数据的描述统计信息

    # 3.查看是否缺失
    print(dataDF.isnull().sum())  # 打印每列缺失值的数量

    # 4.将看到电梯数据缺失8257行,将缺失数据填充为“未知”
    dataDF['电梯'].fillna('未知', inplace=True)
    print(dataDF.isnull().sum())  # 再次打印每列缺失值的数量,确认缺失值已处理

    # 5.统计各城区二手房数量
    g = dataDF.groupby('市区')
    df_region = g['小区'].count()
    region = df_region.index.tolist()
    list_region = [row + '区' for row in region]  # 为每个市区添加“区”字
    count = df_region.values.tolist()
    print(df_region)

    # 实列化Map对象
    map = (
        Map()
        .add(series_name='', data_pair=[list(z) for z in zip(list_region, count)], maptype='北京')
        .set_global_opts(
            title_opts=opts.TitleOpts(title='北京市二手房各区分布'),
            visualmap_opts=opts.VisualMapOpts(is_show=True, min_=0, max_=3000)
        )
    )
    map.render('北京各城区二手房数量地图分布.html')  # 生成地图并保存为HTML文件

    # 6.可视化展示-北京各城区二手房数量-平均价格柱状图
    mean = g.mean()
    price = round(mean['价格(万元)'], 2)
    mean_price = price.values.tolist()
    print(mean_price)

    # 实例化一个柱形图对象
    bar = (Bar().add_xaxis(xaxis_data=region))
    bar.add_yaxis(series_name='数量', y_axis=count)
    bar.extend_axis(yaxis=opts.AxisOpts(name='价格(万元)', max_=900, min_=200, interval=100))
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='各城区二手房数量-平均价格柱状图'),
        yaxis_opts=opts.AxisOpts(name='数量', max_=3000, min_=0),
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
        xaxis_opts=opts.AxisOpts(axispointer_opts=opts.AxisPointerOpts(is_show=True, type_='shadow')),
    )

    # 实例化一个折线图
    line = (Line().add_xaxis(xaxis_data=region))
    line.add_yaxis(series_name='价格', y_axis=mean_price, yaxis_index=1)

    # 重叠柱状图和折线图
    bar.overlap(line)
    grid = Grid()
    grid.add(bar, grid_opts=opts.GridOpts(), is_control_axis_index=True)
    grid.render('北京各城区二手房数量-平均价格柱状图.html')  # 生成组合图并保存为HTML文件

    # 7.可视化展示-二手房价格最高的TOP15
    top_price = dataDF.sort_values(by='价格(万元)', ascending=False)[:15]
    housing = top_price['小区'].values.tolist()
    price_top15 = top_price['价格(万元)'].values.tolist()

    # 实列化一个柱形图对象
    bar1 = (Bar().add_xaxis(xaxis_data=housing))
    bar1.add_yaxis(series_name='数量', y_axis=price_top15, category_gap='50%')
    bar1.set_global_opts(
        title_opts=opts.TitleOpts(title='二手房价格最高的TOP15'),
        yaxis_opts=opts.AxisOpts(name='价格(万元)', min_=0, max_=6000, interval=1000),
        xaxis_opts=opts.AxisOpts(name='小区', axispointer_opts=opts.AxisPointerOpts(is_show=True, type_='shadow')),
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
    )
    bar1.extend_axis(yaxis=opts.AxisOpts(name='价格(万元)', max_=900, min_=200, interval=100))
    bar1.render('北京二手房价格最高的TOP15.html')  # 生成柱状图并保存为HTML文件

    # 8.装修情况-有无电梯(玫瑰图)
    situation = dataDF.groupby('装修情况').count()
    renovate = situation.index.tolist()
    renovate_count = situation['小区'].values.tolist()
    lift = dataDF.groupby('电梯').count()
    lift_index = lift.index.tolist()
    lift_count = lift['小区'].values.tolist()

    # 实列化一个柱形图对象
    bar2 = (Bar().add_xaxis(xaxis_data=renovate))
    bar2.add_yaxis(series_name='', y_axis=renovate_count, category_gap='50%', label_opts=opts.LabelOpts(position='right'))
    bar2.set_global_opts(
        title_opts=opts.TitleOpts(title='装修情况-有无电梯(玫瑰图)'),
        tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'),
        xaxis_opts=opts.AxisOpts(name='数量'),
        yaxis_opts=opts.AxisOpts(name='装修情况', axispointer_opts=opts.AxisPointerOpts(is_show=True, type_='shadow'))
    )
    bar2.reversal_axis()

    # 实列化一个饼图对象
    pie = Pie()
    pie.add(
        series_name='', data_pair=[list(z) for z in zip(lift_index, lift_count)],
        radius=['30%', '65%'],
        center=['50%', '50%'],
        rosetype='radius',
    )
    pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter='{b}: {c}({d}%)'))

    # 组合柱状图和玫瑰图
    grid = Grid()
    grid.add(bar2, grid_opts=opts.GridOpts())
    grid.add(pie, grid_opts=opts.GridOpts(pos_left="60%", pos_right="75%"))
    grid.render('装修情况-有无电梯(玫瑰图).html')  # 生成组合图并保存为HTML文件

    # 9.二手房总价与面积(散点图)
    total_price = dataDF['价格(万元)'].values.tolist()
    total_area = dataDF['面积(㎡)'].values.tolist()

    # 实列化一个散点图对象
    scatter = Scatter()
    scatter.add_xaxis(xaxis_data=total_area)
    scatter.add_yaxis(series_name='', y_axis=total_price)
    scatter.set_global_opts(
        title_opts=opts.TitleOpts(title='二手房总价与面积(散点图)'),
        xaxis_opts=opts.AxisOpts(name='面积(㎡)', type_='value'),
        yaxis_opts=opts.AxisOpts(name='价格(万元)')
    )
    scatter.render('二手房总价与面积(散点图).html')  # 生成散点图并保存为HTML文件

效果展示

这里是引用

这里是引用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 回答1: 要分析二手房朝向分布情况,可以利用pyecharts进行数据可视化展示。 首先,需要获取二手房数据,包括朝向和数量信息。可以通过爬取房产网站或者从已有的数据集中提取这些信息。 然后,使用pyecharts来绘制柱状图或饼图来呈现朝向的分布情况。可以使用Bar或Pie模块进行绘图。 针对柱状图,横坐标可以是不同的朝向,纵坐标可以是数量。每个朝向的数量可以用柱子的高度来表示,从而展示各个朝向的分布情况。可以加入各种样式设置,如颜色、标题、背景等,以使图表更加直观和美观。 针对饼图,每个朝向的数量可以用扇形的大小来表示,从而形成一个圆饼图。可以通过在扇形上添加数据标签来显示每个朝向对应的数量。同样也可以进行样式设置以及添加标题等来增强图表的可读性。 该可视化分析结果将直观地显示二手房朝向的分布情况,可以快速了解各个朝向的数量占比情况。同时也可以通过与其他统计数据进行对比,进一步分析不同朝向对房价或其他因素的影响,以辅助购房决策或市场分析。 ### 回答2: 分析二手房朝向分布情况,我们可以使用pyecharts进行数据可视化。Pyecharts是一个用于生成Echarts图表的Python库,可以方便地将数据转换为各种形式的可视化图表。 首先,我们需要准备好二手房朝向的数据。可以从房产网站或相关数据集中获取到二手房的基本信息,包括房屋朝向的数据。然后,使用pandas或其他数据处理库加载数据,并利用pyecharts数据转换为图表。 在pyecharts中,可以选择使用饼图、柱状图或热力图等不同的图表类型来展示分布情况。这里以饼图为例进行说明。 首先,需要导入相应的库和模块: ```python import pandas as pd from pyecharts import options as opts from pyecharts.charts import Pie ``` 然后,加载并处理数据: ```python data = pd.read_csv("房屋数据.csv") # 假设数据保存在“房屋数据.csv”文件中 orientation_count = data["朝向"].value_counts() # 统计朝向的数量 orientation_data = [(orientation, count) for orientation, count in orientation_count.items()] # 构造数据格式 ``` 接下来,使用pyecharts生成饼图: ```python # 创建饼图对象 pie = ( Pie() .add("", orientation_data) .set_global_opts(title_opts=opts.TitleOpts(title="二手房朝向分布情况")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) # 渲染生成html文件 pie.render("二手房朝向分布情况.html") ``` 以上代码将生成一个包含二手房朝向分布情况的饼图,保存在名为“二手房朝向分布情况.html”的文件中。可以使用浏览器打开该文件,查看具体的分布情况。 当然,根据具体需求,你还可以选择其他图表类型和配置项,来展示二手房朝向分布情况的更多细节。 ### 回答3: 要分析二手房朝向分布情况,可以使用pyecharts进行数据可视化。首先,需要根据数据集中的朝向字段统计每个朝向的数量。然后,使用pyecharts中的柱状图或饼图来展示朝向的分布情况。 在进行数据可视化之前,需要对数据进行预处理和清洗。首先,加载数据集并筛选出需要的字段,例如包含二手房的朝向信息的列。然后,根据朝向字段进行统计,计算每个朝向的数量。 接下来,将统计结果传入pyecharts中的柱状图或饼图进行可视化展示。以柱状图为例,可以将每个朝向作为X轴,数量作为Y轴,通过柱状图的高度来展示每个朝向的数量。可以设置图表的标题、X轴和Y轴的标签等,以增加可读性和易理解性。 在柱状图中,可以按照数量从大到小排序,这样可以更清楚地看到朝向的分布情况。另外,可以使用颜色渐变的功能,通过不同的颜色来区分不同的朝向,使得图表更加直观。 通过pyecharts数据可视化,我们可以直观地了解二手房朝向的分布情况,从而更好地分析市场需求和价格走势,为房地产相关决策提供参考。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值