# 剔除高缺失比例字段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()
文章插图
字段格式转换价格相关的字段,目前还是字符串类型,包含“$”等符号,我们对其处理并转换为数值型 。
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_verifications
和amenities
这样的字段,取值为列表格式,我们对其进行编码处理(用哑变量替换) 。# 查看列表型取值字段gm_df_copy = gm_df.copy()gm_df_copy['amenities'].head()
文章插图
gm_df_copy['host_verifications'].head()
文章插图
# 哑变量编码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()
文章插图
文章插图
# 删除原始字段gm_df = gm_df.drop(['host_verifications', 'amenities'], axis=1)
数据探索下一步我们要进行更全面一些的探索性数据分析 。EDA数据分析部分涉及的工具库,大家可以参考ShowMeAI制作的工具库速查表和教程进行学习和快速使用 。经验总结扩展阅读
- 常熟旅游景点有哪些 常熟必去十大景点
- 2023年农历八月十二旅游吉日 2023年9月26日旅游好不好
- 一篇文章带你了解NoSql数据库——Redis简单入门
- 旅游发圈的精致句子出游短句唯美
- 两个人去张家界旅游三天大概需要多少钱
- 2023年9月27日旅游黄道吉日 2023年9月27日是旅游的黄道吉日吗
- 2023年2月2日是旅游的黄道吉日吗 2023年2月2日适合旅游吗
- 带你去看海底星空是什么意思
- 带你去看海底星空是什么梗
- 一篇文章带你了解服务器操作系统——Linux简单入门