zoukankan      html  css  js  c++  java
  • 房价预测 Task2-4

    房价预测 Task2-4

    Task 1 的文章:点这里

    Task 2

    计算每个agent的平均Y_area

    pandas提供了.mean()函数,求解行/列的均值。所以我们需要构造符合要求的数据帧。

    df_2= df[['AgentId', 'Y house price of unit area']]
    mean = []   # (1)
    for i in range(6):
        mean.append(df_2[df_2['AgentId'] == i]['Y house price of unit area'].mean())    # (2)
    

    (1)这里要先定义一个空的list。定义方法有两种:mean = []mean = list()

    (2)使用了“Task 1”最后说到的分割。这种分割方法真的很高效,推荐使用。

    这里往列表里添加元素,使用了list.append()的方法。你可能会想,mean[i]=...的方式可以吗?

    这是不可以的。会有一个list out of range的错。

    当然最后也要求了降序排列,方法和以前也是一致的。

    Task 3

    计算(1)每年;(2)每个agency每年 的平均Y_area。这是两问。

    第(1)问需要对年进行筛选;如果在'Task 1'做了agency的表格,那么这一个任务的第(2)问就会很简单。

    总而言之,思路就是裁剪数据表,使用内置.mean()函数计算均值

    计算每个agency每年的均值

    df_3 = df[['AgentId','X1 transaction date','Y house price of unit area']]
    
    # seperate each Agency
    df_3_a0 = df_3[(df_3['AgentId']==0)]
    df_3_a1 = df_3[(df_3['AgentId']==2) | (df_3['AgentId']==3) | (df_3['AgentId']==5)]  # (1)
    df_3_a2 = df_3[(df_3['AgentId']==1) | (df_3['AgentId']==4)]
    
    # calculate mean result
    mean_a0_2012=round(df_3_a0[df_3_a0['X1 transaction date']<2013]['Y house price of unit area'].mean(),1) # (2)
    mean_a0_2013=round(df_3_a0[df_3_a0['X1 transaction date']>=2013]['Y house price of unit area'].mean(),1)
    
    mean_a1_2012=round(df_3_a1[df_3_a1['X1 transaction date']<2013]['Y house price of unit area'].mean(),1)
    mean_a1_2013=round(df_3_a1[df_3_a1['X1 transaction date']>=2013]['Y house price of unit area'].mean(),1)
    
    mean_a2_2012=round(df_3_a2[df_3_a2['X1 transaction date']<2013]['Y house price of unit area'].mean(),1)
    mean_a2_2013=round(df_3_a2[df_3_a2['X1 transaction date']>=2013]['Y house price of unit area'].mean(),1)
    

    (1)裁剪数据表时,如果遇到多个条件的书写格式是什么?

    首先,每个条件都要用()不能省略;其次,在pandas中,使用andor会报错,必须替换成| &

    (2)这里使用.mean()来计算均值,使用round(x, 1)进行保留一位小数的四舍五入。

    计算每年的均值

    算法和上面是一致的。

    # Year mean
    mean_2012=round(df_3[df_3['X1 transaction date']<2013]['Y house price of unit area'].mean(), 1)
    mean_2013=round(df_3[df_3['X1 transaction date']>=2013]['Y house price of unit area'].mean(), 1)
    

    Task 4

    做出'Task 3'的图形。我们做出柱状图。

    res_3.plot(kind='bar', alpha=0.7)
    
  • 相关阅读:
    一个很好的菜单源码
    在盗版xp下安装ie7正式版 
    [导入]买新手机了
    [导入]手机解锁全集
    12种找工作方式的成功率
    Kerberos的原理 3
    Kerberos的原理 4
    Kerberos的原理 1
    jQuery 原理的模拟代码 6 代码下载
    Hashtable 中的键值修改问题
  • 原文地址:https://www.cnblogs.com/rongyupan/p/12880795.html
Copyright © 2011-2022 走看看