如何将多份CSV文件特征整合到X_train用于房价预测
整合多区域房屋数据与坐标生成训练用numpy数组X_train
以下是用Python的pandas和numpy完成需求的具体步骤:
1. 导入依赖库
import pandas as pd import numpy as np
2. 加载并合并多区域房屋数据
假设每个房屋CSV文件对应一个区域,文件包含Bedrooms、Gardens及房价列(比如Price),批量读取并合并数据,同时标记数据所属区域:
# 定义区域房屋文件列表 house_files = ['Duckez.csv', 'Vim.csv', 'Hustla.csv', 'Zedrim.csv'] # 批量读取并添加区域标识列 house_dfs = [] for file in house_files: area_name = file.replace('.csv', '') df = pd.read_csv(file) df['Area'] = area_name # 添加区域列用于匹配坐标 house_dfs.append(df) # 合并所有房屋数据为一个DataFrame merged_house_df = pd.concat(house_dfs, ignore_index=True)
3. 加载坐标数据并关联房屋数据
假设coordinate.csv包含Area、Latitude、Longitude三列,对应每个区域的经纬度:
# 加载坐标数据 coord_df = pd.read_csv('coordinate.csv') # 按区域列合并房屋数据与坐标数据 combined_df = pd.merge(merged_house_df, coord_df, on='Area', how='inner')
4. 提取特征并转换为numpy数组
从合并后的DataFrame中提取目标特征,转换为模型训练用的X_train:
# 提取需要的特征列 feature_cols = ['Bedrooms', 'Gardens', 'Latitude', 'Longitude'] X_train = combined_df[feature_cols].to_numpy() # 可选:提取房价作为训练标签y_train y_train = combined_df['Price'].to_numpy()
注意事项
- 确保房屋数据的区域标识与
coordinate.csv中的Area值完全匹配,若CSV无区域列,直接用文件名(去掉.csv)作为区域名即可。 - 处理缺失值:根据需求选择删除或填充,示例:
# 删除含缺失值的行 combined_df = combined_df.dropna(subset=feature_cols + ['Price']) # 用均值填充数值型缺失值 combined_df[feature_cols] = combined_df[feature_cols].fillna(combined_df[feature_cols].mean()) - 数据类型校验:确保
Bedrooms、Gardens为数值类型,若为字符串需转换:combined_df['Bedrooms'] = pd.to_numeric(combined_df['Bedrooms'], errors='coerce')
内容的提问来源于stack exchange,提问作者mintorii
相关产品推荐
相关产品推荐

