Kaggle-纽约市出租车费预测

1 数据导入

在kaggle上下载完训练数据和测试数据之后,将数据导入。由于训练数据集过大,电脑配置有限,训练集只导入100000条记录。

trainData=pd.read_csv('train.csv',nrows=100000)
testData=pd.read_csv('test.csv')

2 数据审查

2.1. 数据的整体情况
data.head()
2.2 类型审查
data.dtypes
key列和pickup_datetime列显示为字符串类型,需要将其转换为时间类型。
2.3 数据的基本情况
data.describe
观察每一个变量的数据基本情况:从fare_amount来看,最小值为负数,不合常理;从经纬度来看,最小值为-3000多,最大值为2000多,不合常理;乘客人数最大为208人,最小为0人,不合常理。

2.4 缺失值审查
缺失值
综上,需要首先对数据进行以下处理:
(1)异常值处理:去除明显异常的记录
(2)缺失值处理:去除存在缺失值的记录
(3)类型转换:将字符串类型的列转换成时间类型的列

3 数据预处理

数据预处理包括类型转化、异常值处理、缺失值处理等

###类型转换
trainData['key']=pd.to_datetime(trainData['key'])
trainData['pickup_datetime']=pd.to_datetime(trainData['pickup_datetime'])
print('data dtypes:\n',trainData.dtypes)

###缺失值处理
trainData=trainData.dropna(axis=0)
print('data null:\n',trainData.isnull().sum())

###异常值处理
#去除fare_amount异常值
trainData=trainData.drop(trainData[trainData['fare_amount']<=0].index)

#passenger_count异常值
trainData=trainData.drop(trainData[trainData['passenger_count']<=0].index)
trainData=trainData.drop(trainData[trainData['passenger_count']>6].index)

#去除经纬度异常值
#去除不在纽约市区经纬度范围内的上车下车点
def select_within_boundingbox(dataframe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值