AI带你省钱旅游!精准预测民宿房源价格!( 三 )


  • 类别型字段,像bathrooms_text和host_response_time,我们用众数进行填充 。
  • # 剔除高缺失比例字段def drop_function_2(df):df = df.drop(columns=['license', 'calendar_updated', 'bathrooms', 'host_neighbourhood', 'neighborhood_overview'])return dfgm_df = drop_function_2(gm_df)# 均值填充def input_mean(df, column_list):for columns in column_list:df[columns].fillna(value = https://www.huyubaike.com/biancheng/df[columns].mean(), inplace=True)return dfcolumn_list = ['review_scores_rating', 'review_scores_accuracy', 'review_scores_cleanliness','review_scores_checkin', 'review_scores_communication', 'review_scores_location','review_scores_value', 'reviews_per_month','bedrooms', 'beds']gm_df = input_mean(gm_df, column_list)# 众数填充def input_mode(df, column_list):for columns in column_list:df[columns].fillna(value = https://www.huyubaike.com/biancheng/df[columns].mode()[0], inplace=True)return dfcolumn_list = ['first_review', 'last_review', 'bathrooms_text', 'host_acceptance_rate','host_response_rate', 'host_response_time']gm_df = input_mode(gm_df, column_list)字段编码host_is_superhost 和 has_availability 等列对应的字符串含义为 true 或 false,我们对其编码替换为0或1 。
    gm_df = gm_df.replace({'host_is_superhost': 't', 'host_has_profile_pic': 't', 'host_identity_verified': 't', 'has_availability': 't', 'instant_bookable': 't'}, 1)gm_df = gm_df.replace({'host_is_superhost': 'f', 'host_has_profile_pic': 'f', 'host_identity_verified': 'f', 'has_availability': 'f', 'instant_bookable': 'f'}, 0)我们查看下替换后的数据分布
    【AI带你省钱旅游!精准预测民宿房源价格!】gm_df['host_is_superhost'].value_counts()
    AI带你省钱旅游!精准预测民宿房源价格!

    文章插图
    字段格式转换价格相关的字段,目前还是字符串类型,包含“$”等符号,我们对其处理并转换为数值型 。
    def string_to_int(df, column):# 字符串替换清理df[column] = df[column].str.replace("$", "")df[column] = df[column].str.replace(",", "")# 转为数值型df[column] = pd.to_numeric(df[column]).astype(int)return dfgm_df = string_to_int(gm_df, 'price')列表型字段编码像host_verificationsamenities这样的字段,取值为列表格式,我们对其进行编码处理(用哑变量替换) 。
    # 查看列表型取值字段gm_df_copy = gm_df.copy()gm_df_copy['amenities'].head()
    AI带你省钱旅游!精准预测民宿房源价格!

    文章插图
    gm_df_copy['host_verifications'].head()
    AI带你省钱旅游!精准预测民宿房源价格!

    文章插图
    # 哑变量编码gm_df_copy['amenities'] = gm_df_copy['amenities'].str.replace('"', '')gm_df_copy['amenities'] = gm_df_copy['amenities'].str.replace(']', "")gm_df_copy['amenities'] = gm_df_copy['amenities'].str.replace('[', "")df_amenities = gm_df_copy['amenities'].str.get_dummies(sep = ",")gm_df_copy['host_verifications'] = gm_df_copy['host_verifications'].str.replace("'", "")gm_df_copy['host_verifications'] = gm_df_copy['host_verifications'].str.replace(']', "")gm_df_copy['host_verifications'] = gm_df_copy['host_verifications'].str.replace('[', "")df_host_ver = gm_df_copy['host_verifications'].str.get_dummies(sep = ",")编码后的结果如下所示
    df_amenities.head()df_host_ver.head()
    AI带你省钱旅游!精准预测民宿房源价格!

    文章插图
    AI带你省钱旅游!精准预测民宿房源价格!

    文章插图
    # 删除原始字段gm_df = gm_df.drop(['host_verifications', 'amenities'], axis=1)数据探索下一步我们要进行更全面一些的探索性数据分析 。
    EDA数据分析部分涉及的工具库,大家可以参考ShowMeAI制作的工具库速查表和教程进行学习和快速使用 。

    经验总结扩展阅读