#将bool值转化为0/1
for u in df.columns:
if df[u].dtype==bool:
df[u]=df[u].astype('int') #将true/false转化为0/1
df.head()
df[df.MISSING_DATA==1] #验证数据是否缺失
df.shape
#找到出租车轨迹的起点位置
start_point=[]
for i in df['POLYLINE']:
i=eval(i)
start_point.append(i[0]) #输出起点值
print(start_point)
#输出出租车轨迹的终点位置
dest_point=[]
for i in df['POLYLINE']:
i=eval(i)
dest_point.append(i[-1]) #输出终点值
print(dest_point)
#找到所有轨迹点的经度最大值最小值,纬度最大值最小值
latitude=[]
altitude=[]
for i in df['POLYLINE']:
i=eval(i) #这里需要注意原来提取的i值为字符串,通过eval()可直接将表达式转化为需要的公式
for j in i:
latitude.append(j[0]) #输出经度列表
altitude.append(j[1]) #输出纬度列表
lat_min=min(latitude)
lat_max=max(latitude)
alt_min=min(altitude)
alt_max=max(altitude)
lat_len=len(latitude)
alt_len=len(altitude)
print(lat_min, lat_max, alt_min, alt_max,lat_len,alt_len)
lat_count=0
alt_count=0
for i in latitude:
if i >=-8.71 and i<=-8.51:
lat_count=lat_count+1
for j in altitude:
if j >= 41.04 and j<=41.24:
alt_count=alt_count+1
print(lat_count,alt_count)
df.head()
#df.info()
#统计每行轨迹的数据个数
df['POLYLINE_COUNT']=df['POLYLINE'].apply(lambda x: len(eval(x)))
def POLYLINE_COUNT(df):
a,b,c,d,e,f,g=[0,0,0,0,0,0,0]
for i in df['POLYLINE_COUNT']:
if i >=0 and i <= 10: #由于大部分数据行使轨迹都是在0-20之间,所以这里我们单独将0-20拆分两段
a=a+1
elif i>10 and i<=20:
b=b+1
elif i>20 and i<=40:
c=c+1
elif i>40 and i<=60:
d=d+1
elif i>60 and i<=80:
e=e+1
elif i>80 and i<=100:
f=f+1
else:
g=g+1
return (a,b,c,d,e,f,g)
print(POLYLINE_COUNT(df))