#过程设计 1)提出问题;2)理解数据;3)数据清理;4)数据分析;5)得出结论
#提出如下问题:1)何时为打车需求高发期?2)居民夜生活情况(根据打车情况推断);3)城市一天当中什么时候最拥堵;
‘’’
表单变量说明:
id - 每次行程的唯一ID
vendor_id - 行程提供者的ID
pickup_datetime - 上车的日期和时间
dropoff_datetime - 停表的日期和时间
passenger_count - 车辆中的乘客数量(驾驶员输入值)
pickup_longitude - 上车的经度
pickup_latitude - 上车的纬度
dropoff_longitude - 下车经度
dropoff_latitude - 下车的纬度
store_and_fwd_flag - 行程记录是否为存储转发(或是直接发送)-- Y =存储和转发 N =没有存储
trip_duration - 行程持续时间(秒)
‘’’
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
from datetime import datetime
#读取数据,并显示部分数据
train=pd.read_csv(r"C:\Users\32715\Desktop\change\New York City Taxi Trip Duration\train.csv")
print(train.shape)
#print(train.head())
train.info()
print(train.describe())
#处理一下异常值,此处乘车时间max值是3.52e+6,近1000小时了,打车这么久不大可能。
#而min值1秒,需要清理一下。按照统计的方法,2个标准差的数据,可视为异常值。
m=np.mean(train['trip_duration'])
print(m)
s=np.std(train['trip_duration'])
print(s)
train=train[train['trip_duration']<m+2*s]
train=train[train['trip_duration']>m-2*s]
train.describe()
vendor_id passenger_count pickup_longitude pickup_latitude \
count 1.458644e+06 1.458644e+06 1.458644e+06 1.458644e+06
mean 1.534950e+00 1.664530e+00 -7.397349e+01 4.075092e+01
std 4.987772e-01 1.314242e+00 7.090186e-02 3.288119e-02
min 1.000000e+00 0.000000e+00 -1.219333e+02 3.435970e+01
25% 1.000000e+00 1.000000e+00 -7.399187e+01 4.073735e+01
50% 2.000000e+00 1.000000e+00 -7.398174e+01 4.075410e+01
75% 2.000000e+00 2.000000e+00 -7.396733e+01 4.076836e+01
max 2.000000e+00 9.000000e+00 -6.133553e+01 5.188108e+01
dropoff_longitude