import gpxpy
import os
%pylab inline
import json
import codecs
import pandas as pd;
import csv;
from pandas import DataFrame,Series
from pandas import Timestamp
import matplotlib as mpl
import seaborn as sns
import matplotlib.pyplot as plt
Populating the interactive namespace from numpy and matplotlib
from datetime import datetime,timedelta
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] #指定默认字体
mpl.rcParams['font.size'] = 16
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set_context("talk")
dir='../datasets/rungps/'
#dir='D:/360安全浏览器下载/gps_scripts/sample_gpx2/'
gpxs= [dir+'/'+r for r in os.listdir(dir) if r.split('.')[1]=='gpx']
jsonfile= codecs.open('../datasets/rungps/info.json','r','utf-8')
gpxinfo = json.load(jsonfile)
gpxpd=pd.DataFrame(gpxinfo)
len(gpxpd)
345
gpxpd
distance | hot | id | type | |
---|---|---|---|---|
0 | 8.76 | 248 | 15414378 | 骑行 |
1 | 9.24 | 262 | 15414365 | 骑行 |
2 | 0.53 | 33 | 15414353 | 跑步 |
3 | 5.96 | 384 | 15414346 | 跑步 |
4 | 9.93 | 268 | 15414328 | 骑行 |
5 | 9.82 | 645 | 15414313 | 跑步 |
6 | 0.43 | 36 | 15289498 | 跑步 |
7 | 0.20 | 17 | 15289495 | 跑步 |
8 | 10.70 | 895 | 15274763 | 跑步 |
9 | 8.29 | 230 | 15274758 | 骑行 |
10 | 9.20 | 260 | 15274756 | 骑行 |
11 | 6.71 | 240 | 15241610 | 骑行 |
12 | 8.70 | 262 | 15241609 | 骑行 |
13 | 9.90 | 301 | 15215963 | 骑行 |
14 | 2.23 | 34 | 15215960 | 骑行 |
15 | 7.66 | 196 | 15215958 | 骑行 |
16 | 12.01 | 300 | 15158279 | 骑行 |
17 | 9.64 | 268 | 15158277 | 骑行 |
18 | 9.30 | 295 | 15135785 | 骑行 |
19 | 9.80 | 272 | 15135782 | 骑行 |
20 | 9.20 | 262 | 15113542 | 骑行 |
21 | 8.66 | 272 | 15113541 | 骑行 |
22 | 2.90 | 76 | 15113539 | 骑行 |
23 | 12.94 | 1063 | 15113536 | 跑步 |
24 | 8.20 | 651 | 14876253 | 跑步 |
25 | 9.50 | 772 | 14876248 | 跑步 |
26 | 1.24 | 100 | 14876246 | 跑步 |
27 | 4.84 | 144 | 14857102 | 骑行 |
28 | 0.20 | 15 | 14857100 | 跑步 |
29 | 20.33 | 1636 | 14667595 | 跑步 |
... | ... | ... | ... | ... |
315 | 8.31 | 271 | 8236112 | 骑行 |
316 | 8.34 | 301 | 8236110 | 骑行 |
317 | 6.96 | 244 | 8236109 | 骑行 |
318 | 11.31 | 443 | 8236108 | 骑行 |
319 | 6.05 | 218 | 8236107 | 骑行 |
320 | 10.35 | 866 | 8236106 | 跑步 |
321 | 11.02 | 922 | 8236104 | 跑步 |
322 | 11.26 | 976 | 8236103 | 跑步 |
323 | 11.06 | 927 | 8236102 | 跑步 |
324 | 17.80 | 1499 | 8236101 | 跑步 |
325 | 8236099 | 步行 | ||
326 | 18.01 | 1511 | 8236098 | 跑步 |
327 | 15.51 | 1296 | 8236094 | 跑步 |
328 | 1.01 | 85 | 8236093 | 跑步 |
329 | 12.68 | 1061 | 8236092 | 跑步 |
330 | 10.48 | 869 | 8236091 | 跑步 |
331 | 14.55 | 1215 | 8236090 | 跑步 |
332 | 0.43 | 31 | 8236089 | 跑步 |
333 | 47.37 | 1803 | 8236088 | 骑行 |
334 | 20.10 | 1669 | 8236087 | 跑步 |
335 | 20.03 | 1672 | 8236086 | 跑步 |
336 | 4.92 | 414 | 8236085 | 跑步 |
337 | 7.10 | 573 | 8236083 | 跑步 |
338 | 5.93 | 487 | 8236081 | 跑步 |
339 | 22.01 | 1836 | 8236080 | 跑步 |
340 | 21.08 | 1770 | 8236079 | 跑步 |
341 | 7.60 | 631 | 8236077 | 跑步 |
342 | 45.31 | 3793 | 8236076 | 跑步 |
343 | 9.45 | 369 | 8236075 | 骑行 |
344 | 15.33 | 1280 | 8236074 | 跑步 |
345 rows × 4 columns
gpxpd.head()
distance | hot | id | type | |
---|---|---|---|---|
0 | 8.76 | 248 | 15414378 | 骑行 |
1 | 9.24 | 262 | 15414365 | 骑行 |
2 | 0.53 | 33 | 15414353 | 跑步 |
3 | 5.96 | 384 | 15414346 | 跑步 |
4 | 9.93 | 268 | 15414328 | 骑行 |
gpxpd.groupby(gpxpd.type).size().plot(kind='pie')
<matplotlib.axes._subplots.AxesSubplot at 0xa40cf0>
def readgpx(x):
file= open(dir+x+'.gpx','r')
txt=file.read()
gpx=gpxpy.parse(txt)
mv=gpx.get_moving_data()
dat= {'移动时间':mv.moving_time,'静止时间':mv.stopped_time,'移动距离':mv.moving_distance,'暂停距离':mv.stopped_distance,'最大速度':mv.max_speed};
dat['总时间']=(gpx.get_duration())
dat['id']=str(x)
updown=gpx.get_uphill_downhill()
dat['上山']=(updown.uphill);
dat['下山']=(updown.downhill)
timebound=gpx.get_time_bounds();
dat['开始时间']=(timebound.start_time)
dat['结束时间']=(timebound.end_time)
p=gpx.get_points_data()[0]
dat['lat']=p.point.latitude
dat['lng']=p.point.longitude
file.close()
return dat
data=[]
for r in gpxpd.id:
data.append(readgpx(r))
详细= DataFrame(data)
详细=详细.merge(gpxpd,left_on='id',right_on='id',how='left')
详细.开始时间=详细.开始时间.map(lambda x:x+timedelta(hours=8))
详细.结束时间=详细.结束时间.map(lambda x:x+timedelta(hours=8))
详细.describe()
lat | lng | 上山 | 下山 | 总时间 | 暂停距离 | 最大速度 | 移动时间 | 移动距离 | 静止时间 | |
---|---|---|---|---|---|---|---|---|---|---|
count | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 | 345.000000 |
mean | 39.639758 | 116.273281 | 87.815084 | 87.023480 | 2517.179710 | 25.289476 | 7.767560 | 2307.921739 | 9576.608661 | 209.257971 |
std | 2.057149 | 0.964971 | 208.227441 | 205.920037 | 2131.922694 | 84.145590 | 3.871210 | 1964.271345 | 5727.557821 | 576.908975 |
min | 22.293875 | 103.849650 | 0.400000 | 0.000000 | 33.000000 | 0.000000 | 0.000000 | 33.000000 | 186.027132 | 0.000000 |
25% | 39.963141 | 116.354551 | 18.900000 | 19.400000 | 1426.000000 | 0.000000 | 5.284012 | 1351.000000 | 7515.321150 | 0.000000 |
50% | 39.965323 | 116.438743 | 29.000000 | 27.300000 | 1683.000000 | 9.604584 | 8.400156 | 1585.000000 | 8984.510016 | 73.000000 |
75% | 39.966690 | 116.448580 | 41.200000 | 42.500000 | 2904.000000 | 22.230107 | 9.233345 | 2623.000000 | 10251.276385 | 156.000000 |
max | 40.553930 | 120.157380 | 2430.800000 | 2414.800000 | 15242.000000 | 1388.285536 | 62.295214 | 15169.000000 | 47501.618425 | 6607.000000 |
详细=详细[详细.distance.str.contains('\d+')]
详细
id | lat | lng | 上山 | 下山 | 开始时间 | 总时间 | 暂停距离 | 最大速度 | 移动时间 | 移动距离 | 结束时间 | 静止时间 | distance | hot | type | 移动速度 | 平均速度 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
开始时间 | ||||||||||||||||||
2016-02-29 15:55:25 | 15414378 | 39.939775 | 116.428021 | 20.100000 | 10.100000 | 2016-02-29 15:55:25 | 1545 | 0.000000 | 9.335115 | 1545 | 8716.251458 | 2016-02-29 16:21:10 | 0 | 8 | 248 | 骑行 | 5.641587 | 5.641587 |
2016-02-29 12:49:34 | 15414365 | 39.962662 | 116.354799 | 20.900000 | 22.900000 | 2016-02-29 12:49:34 | 2004 | 54.552571 | 8.529740 | 1702 | 9165.652439 | 2016-02-29 13:22:58 | 302 | 9 | 262 | 骑行 | 5.385225 | 4.573679 |
2016-02-27 19:09:01 | 15414353 | 39.975522 | 116.371728 | 2.100000 | 2.100000 | 2016-02-27 19:09:01 | 292 | 0.000000 | 2.883729 | 292 | 548.189867 | 2016-02-27 19:13:53 | 0 | 0 | 33 | 跑步 | 1.877363 | 1.877363 |
2016-02-27 17:55:15 | 15414346 | 39.965782 | 116.451051 | 32.200000 | 35.200000 | 2016-02-27 17:55:15 | 3527 | 5.048983 | 6.156464 | 3361 | 7059.813048 | 2016-02-27 18:54:02 | 166 | 5 | 384 | 跑步 | 2.100510 | 2.001648 |
2016-02-26 08:47:12 | 15414328 | 39.965386 | 116.449411 | 35.100000 | 21.100000 | 2016-02-26 08:47:12 | 1623 | 0.000000 | 10.401620 | 1623 | 9909.582299 | 2016-02-26 09:14:15 | 0 | 9 | 268 | 骑行 | 6.105719 | 6.105719 |
2016-02-25 08:36:59 | 15414313 | 39.966949 | 116.447950 | 34.800000 | 24.800000 | 2016-02-25 08:36:59 | 1765 | 15.931564 | 8.565283 | 1610 | 9499.873492 | 2016-02-25 09:06:24 | 155 | 9 | 645 | 跑步 | 5.900543 | 5.382365 |
2016-02-24 21:07:14 | 15289498 | 39.968828 | 116.444666 | 2.000000 | 3.000000 | 2016-02-24 21:07:14 | 121 | 0.000000 | 6.930610 | 121 | 448.238202 | 2016-02-24 21:09:15 | 0 | 0 | 36 | 跑步 | 3.704448 | 3.704448 |
2016-02-24 20:33:14 | 15289495 | 39.963203 | 116.353801 | 1.400000 | 1.400000 | 2016-02-24 20:33:14 | 81 | 0.000000 | 6.278180 | 81 | 221.293046 | 2016-02-24 20:34:35 | 0 | 0 | 17 | 跑步 | 2.732013 | 2.732013 |
2016-02-24 08:21:42 | 15274763 | 39.970826 | 116.441234 | 43.100000 | 28.100000 | 2016-02-24 08:21:42 | 3672 | 10.557960 | 4.935352 | 3624 | 10040.179902 | 2016-02-24 09:22:54 | 48 | 10 | 895 | 跑步 | 2.770469 | 2.734254 |
2016-02-23 18:17:51 | 15274758 | 39.966273 | 116.365732 | 20.600000 | 35.600000 | 2016-02-23 18:17:51 | 1608 | 14.834453 | 8.953432 | 1524 | 8811.645872 | 2016-02-23 18:44:39 | 84 | 8 | 230 | 骑行 | 5.781920 | 5.479879 |
2016-02-23 08:32:19 | 15274756 | 39.966902 | 116.447078 | 31.700000 | 21.700000 | 2016-02-23 08:32:19 | 1631 | 1.661745 | 8.968138 | 1584 | 9205.410972 | 2016-02-23 08:59:30 | 47 | 9 | 260 | 骑行 | 5.811497 | 5.644029 |
2016-02-22 18:40:24 | 15241610 | 39.966389 | 116.365743 | 31.500000 | 42.500000 | 2016-02-22 18:40:24 | 940 | 0.000000 | 10.322870 | 938 | 6694.850563 | 2016-02-22 18:56:04 | 2 | 6 | 240 | 骑行 | 7.137367 | 7.122181 |
2016-02-22 08:33:00 | 15241609 | 39.965323 | 116.444699 | 27.100000 | 19.100000 | 2016-02-22 08:33:00 | 1452 | 12.655550 | 9.667941 | 1382 | 8738.635723 | 2016-02-22 08:57:12 | 70 | 8 | 262 | 骑行 | 6.323181 | 6.018344 |
2016-02-21 11:37:24 | 15215963 | 39.931260 | 116.368583 | 20.500000 | 28.500000 | 2016-02-21 11:37:24 | 1828 | 19.626797 | 9.131326 | 1738 | 9807.296475 | 2016-02-21 12:07:52 | 90 | 9 | 301 | 骑行 | 5.642863 | 5.365042 |
2016-02-20 18:24:56 | 15215960 | 39.944419 | 116.379186 | 3.400000 | 3.400000 | 2016-02-20 18:24:56 | 2763 | 115.215321 | 6.381430 | 1821 | 3319.860929 | 2016-02-20 19:10:59 | 942 | 2 | 34 | 骑行 | 1.823098 | 1.201542 |
2016-02-20 14:11:50 | 15215958 | 39.962575 | 116.441709 | 59.100000 | 17.100000 | 2016-02-20 14:11:50 | 3458 | 197.918391 | 8.703025 | 2018 | 7013.520820 | 2016-02-20 15:09:28 | 1440 | 7 | 196 | 骑行 | 3.475481 | 2.028202 |
2016-02-18 18:27:15 | 15158279 | 39.962891 | 116.353953 | 37.400000 | 35.400000 | 2016-02-18 18:27:15 | 3040 | 28.626952 | 7.128958 | 2624 | 11887.543411 | 2016-02-18 19:17:55 | 416 | 12 | 300 | 骑行 | 4.530314 | 3.910376 |
2016-02-18 08:27:09 | 15158277 | 39.964197 | 116.449781 | 32.200000 | 27.200000 | 2016-02-18 08:27:09 | 1826 | 8.807502 | 8.598475 | 1701 | 9698.992878 | 2016-02-18 08:57:35 | 125 | 9 | 268 | 骑行 | 5.701936 | 5.311606 |
2016-02-17 18:29:04 | 15135785 | 39.962939 | 116.354365 | 16.300000 | 29.300000 | 2016-02-17 18:29:04 | 1406 | 5.409439 | 10.081761 | 1310 | 9206.184951 | 2016-02-17 18:52:30 | 96 | 9 | 295 | 骑行 | 7.027622 | 6.547784 |
2016-02-17 08:32:19 | 15135782 | 39.969064 | 116.455769 | 26.200000 | 16.200000 | 2016-02-17 08:32:19 | 1625 | 13.461072 | 9.049439 | 1439 | 10251.276385 | 2016-02-17 08:59:24 | 186 | 9 | 272 | 骑行 | 7.123889 | 6.308478 |
2016-02-16 08:44:20 | 15113542 | 39.965810 | 116.447056 | 29.000000 | 22.000000 | 2016-02-16 08:44:20 | 1568 | 4.136678 | 9.683209 | 1538 | 9145.346825 | 2016-02-16 09:10:28 | 30 | 9 | 262 | 骑行 | 5.946259 | 5.832492 |
2016-02-16 18:56:35 | 15113541 | 39.966180 | 116.360724 | 20.300000 | 34.300000 | 2016-02-16 18:56:35 | 1313 | 0.000000 | 9.561346 | 1313 | 8648.839108 | 2016-02-16 19:18:28 | 0 | 8 | 272 | 骑行 | 6.587082 | 6.587082 |
2016-02-06 18:24:04 | 15113539 | 38.416831 | 112.726142 | 8.800000 | 9.800000 | 2016-02-06 18:24:04 | 2209 | 38.941033 | 6.904218 | 929 | 2872.489807 | 2016-02-06 19:00:53 | 1280 | 2 | 76 | 骑行 | 3.092023 | 1.300358 |
2016-02-05 08:15:59 | 15113536 | 38.433069 | 112.732837 | 58.500000 | 59.500000 | 2016-02-05 08:15:59 | 7263 | 84.996667 | 4.110671 | 5875 | 14218.627402 | 2016-02-05 10:17:02 | 1388 | 12 | 1063 | 跑步 | 2.420192 | 1.957680 |
2016-01-31 15:44:35 | 14876253 | 39.922908 | 116.404737 | 34.900000 | 39.900000 | 2016-01-31 15:44:35 | 3877 | 0.281920 | 4.959237 | 3873 | 9280.776306 | 2016-01-31 16:49:12 | 4 | 8 | 651 | 跑步 | 2.396276 | 2.393804 |
2016-01-31 14:00:19 | 14876248 | 39.895152 | 116.322193 | 44.100000 | 42.100000 | 2016-01-31 14:00:19 | 4181 | 84.448243 | 5.118835 | 3691 | 9788.424509 | 2016-01-31 15:10:00 | 490 | 9 | 772 | 跑步 | 2.651971 | 2.341168 |
2016-01-31 10:44:59 | 14876246 | 39.741531 | 116.325856 | 6.400000 | 5.400000 | 2016-01-31 10:44:59 | 404 | 0.000000 | 6.296293 | 404 | 1267.308028 | 2016-01-31 10:51:43 | 0 | 1 | 100 | 跑步 | 3.136901 | 3.136901 |
2016-01-30 11:04:28 | 14857102 | 39.997435 | 116.456407 | 8.900000 | 9.900000 | 2016-01-30 11:04:28 | 1189 | 69.098863 | 8.706801 | 921 | 4778.247182 | 2016-01-30 11:24:17 | 268 | 4 | 144 | 骑行 | 5.188108 | 4.018711 |
2016-01-30 10:13:16 | 14857100 | 39.971886 | 116.453083 | 1.000000 | 0.000000 | 2016-01-30 10:13:16 | 33 | 0.000000 | 0.000000 | 33 | 186.027132 | 2016-01-30 10:13:49 | 0 | 0 | 15 | 跑步 | 5.637186 | 5.637186 |
2016-01-17 15:10:38 | 14667595 | 39.961681 | 116.440548 | 106.400000 | 112.400000 | 2016-01-17 15:10:38 | 10449 | 40.740915 | 4.166478 | 10156 | 22676.888450 | 2016-01-17 18:04:47 | 293 | 20 | 1636 | 跑步 | 2.232856 | 2.170245 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2015-03-09 16:51:05 | 8236113 | 39.977300 | 116.434090 | 170.156638 | 156.247918 | 2015-03-09 16:51:05 | 2160 | 37.974594 | 6.295204 | 1953 | 8653.527850 | 2015-03-09 17:27:05 | 207 | 8 | 278 | 骑行 | 4.430890 | 4.006263 |
2015-03-09 22:58:36 | 8236112 | 39.980520 | 116.369490 | 169.236472 | 174.927482 | 2015-03-09 22:58:36 | 1391 | 2.040290 | 7.323827 | 1372 | 8342.032792 | 2015-03-09 23:21:47 | 19 | 8 | 271 | 骑行 | 6.080199 | 5.997148 |
2015-03-23 16:42:41 | 8236110 | 39.942930 | 116.450310 | 262.423767 | 264.901547 | 2015-03-23 16:42:41 | 1544 | 1.710910 | 8.359646 | 1466 | 8393.330303 | 2015-03-23 17:08:25 | 78 | 8 | 301 | 骑行 | 5.725328 | 5.436095 |
2015-03-23 23:19:43 | 8236109 | 39.953270 | 116.447250 | 203.249923 | 190.904233 | 2015-03-23 23:19:43 | 1375 | 26.090245 | 7.669159 | 1220 | 7018.380479 | 2015-03-23 23:42:38 | 155 | 6 | 244 | 骑行 | 5.752771 | 5.104277 |
2015-03-29 19:12:42 | 8236108 | 39.966690 | 116.450480 | 307.652997 | 388.500407 | 2015-03-29 19:12:42 | 1965 | 22.899450 | 9.217671 | 1698 | 11416.726198 | 2015-03-29 19:45:27 | 267 | 11 | 443 | 骑行 | 6.723631 | 5.810039 |
2015-03-29 21:23:44 | 8236107 | 39.976710 | 116.389990 | 136.303065 | 128.571435 | 2015-03-29 21:23:44 | 991 | 11.324806 | 8.345556 | 931 | 6072.419285 | 2015-03-29 21:40:15 | 60 | 6 | 218 | 骑行 | 6.522470 | 6.127567 |
2015-04-06 17:24:02 | 8236106 | 39.966870 | 116.455490 | 206.034403 | 190.730643 | 2015-04-06 17:24:02 | 3546 | 26.635323 | 4.448066 | 3409 | 10402.544603 | 2015-04-06 18:23:08 | 137 | 10 | 866 | 跑步 | 3.051494 | 2.933600 |
2015-04-06 21:05:50 | 8236104 | 39.989010 | 116.353720 | 126.755278 | 132.826398 | 2015-04-06 21:05:50 | 3801 | 2.225021 | 3.772658 | 3787 | 11089.507899 | 2015-04-06 22:09:11 | 14 | 11 | 922 | 跑步 | 2.928309 | 2.917524 |
2015-04-16 08:31:53 | 8236103 | 39.977070 | 116.484960 | 152.163052 | 125.505422 | 2015-04-16 08:31:53 | 3485 | 22.230107 | 4.214460 | 3358 | 9569.840046 | 2015-04-16 09:29:58 | 127 | 11 | 976 | 跑步 | 2.849863 | 2.746009 |
2015-04-21 09:05:44 | 8236102 | 39.973290 | 116.446960 | 224.118669 | 200.656409 | 2015-04-21 09:05:44 | 3690 | 39.185363 | 4.263799 | 3517 | 11035.311047 | 2015-04-21 10:07:14 | 173 | 11 | 927 | 跑步 | 3.137706 | 2.990599 |
2015-04-24 08:07:32 | 8236101 | 39.968440 | 116.454090 | 406.109159 | 458.660519 | 2015-04-24 08:07:32 | 5236 | 0.000000 | 5.133062 | 5236 | 17961.121500 | 2015-04-24 09:34:48 | 0 | 17 | 1499 | 跑步 | 3.430314 | 3.430314 |
2015-04-27 20:45:22 | 8236098 | 39.960330 | 116.444900 | 490.480347 | 469.372567 | 2015-04-27 20:45:22 | 5586 | 0.000000 | 4.577185 | 5586 | 18058.833022 | 2015-04-27 22:18:28 | 0 | 18 | 1511 | 跑步 | 3.232874 | 3.232874 |
2015-04-29 08:06:43 | 8236094 | 39.970910 | 116.455830 | 225.162235 | 281.057815 | 2015-04-29 08:06:43 | 5018 | 17.639681 | 4.288345 | 4949 | 15465.157491 | 2015-04-29 09:30:21 | 69 | 15 | 1296 | 跑步 | 3.124906 | 3.081937 |
2015-04-30 19:39:31 | 8236093 | 38.485690 | 112.725340 | 16.256826 | 13.912986 | 2015-04-30 19:39:31 | 351 | 0.000000 | 3.757809 | 351 | 1011.907043 | 2015-04-30 19:45:22 | 0 | 1 | 85 | 跑步 | 2.882926 | 2.882926 |
2015-05-02 19:22:55 | 8236092 | 38.435180 | 112.734460 | 187.505566 | 179.783216 | 2015-05-02 19:22:55 | 4370 | 7.498077 | 3.899078 | 4331 | 12963.504895 | 2015-05-02 20:35:45 | 39 | 12 | 1061 | 跑步 | 2.993190 | 2.966477 |
2015-05-06 20:47:53 | 8236091 | 39.961660 | 116.445350 | 230.499558 | 212.732318 | 2015-05-06 20:47:53 | 3814 | 10.050538 | 4.335467 | 3765 | 10354.878838 | 2015-05-06 21:51:27 | 49 | 10 | 869 | 跑步 | 2.750300 | 2.714966 |
2015-05-12 16:18:53 | 8236090 | 39.975470 | 116.443880 | 139.795762 | 128.597422 | 2015-05-12 16:18:53 | 4991 | 24.044541 | 3.838270 | 4880 | 14468.874969 | 2015-05-12 17:42:04 | 111 | 14 | 1215 | 跑步 | 2.964933 | 2.898993 |
2015-05-12 17:55:31 | 8236089 | 40.012650 | 116.390040 | 11.642333 | 10.813323 | 2015-05-12 17:55:31 | 661 | 9.869003 | 1.567872 | 479 | 423.498822 | 2015-05-12 18:06:32 | 182 | 0 | 31 | 跑步 | 0.884131 | 0.640694 |
2015-05-16 20:15:53 | 8236088 | 39.968430 | 116.414910 | 875.263993 | 863.971333 | 2015-05-16 20:15:53 | 8760 | 86.750755 | 8.818718 | 7988 | 47501.618425 | 2015-05-16 22:41:53 | 772 | 47 | 1803 | 骑行 | 5.946622 | 5.422559 |
2015-05-26 20:25:23 | 8236087 | 39.959190 | 116.453710 | 455.751090 | 494.709900 | 2015-05-26 20:25:23 | 6816 | 0.000000 | 4.079952 | 6816 | 19951.228454 | 2015-05-26 22:18:59 | 0 | 20 | 1669 | 跑步 | 2.927117 | 2.927117 |
2015-05-28 20:14:26 | 8236086 | 39.966790 | 116.455710 | 218.614361 | 204.520931 | 2015-05-28 20:14:26 | 7169 | 10.693060 | 3.584331 | 7118 | 20264.978279 | 2015-05-28 22:13:55 | 51 | 20 | 1672 | 跑步 | 2.847005 | 2.826751 |
2015-05-30 19:46:21 | 8236085 | 40.011490 | 116.392710 | 100.640030 | 114.721660 | 2015-05-30 19:46:21 | 1426 | 0.000000 | 4.262249 | 1426 | 4929.671186 | 2015-05-30 20:10:07 | 0 | 4 | 414 | 跑步 | 3.456992 | 3.456992 |
2015-05-30 20:28:30 | 8236083 | 40.008660 | 116.392480 | 108.168800 | 109.621020 | 2015-05-30 20:28:30 | 4541 | 95.479479 | 2.557352 | 3800 | 7028.834615 | 2015-05-30 21:44:11 | 741 | 7 | 573 | 跑步 | 1.849693 | 1.547861 |
2015-05-30 21:45:14 | 8236081 | 39.948660 | 116.398460 | 174.371374 | 158.640994 | 2015-05-30 21:45:14 | 2863 | 16.951199 | 3.239376 | 2741 | 5940.609254 | 2015-05-30 22:32:57 | 122 | 5 | 487 | 跑步 | 2.167315 | 2.074960 |
2015-06-04 19:48:06 | 8236080 | 39.962000 | 116.457020 | 1255.600000 | 1292.600000 | 2015-06-04 19:48:06 | 7770 | 14.922985 | 4.681906 | 7704 | 23431.109999 | 2015-06-04 21:57:36 | 66 | 22 | 1836 | 跑步 | 3.041421 | 3.015587 |
2015-06-06 20:19:57 | 8236079 | 39.966760 | 116.448870 | 1414.700000 | 1408.700000 | 2015-06-06 20:19:57 | 6603 | 0.000000 | 5.109054 | 6603 | 22291.681667 | 2015-06-06 22:10:00 | 0 | 21 | 1770 | 跑步 | 3.375993 | 3.375993 |
2015-06-08 15:32:12 | 8236077 | 39.973040 | 116.446440 | 570.900000 | 557.900000 | 2015-06-08 15:32:12 | 3122 | 0.000000 | 5.107019 | 3122 | 8421.531394 | 2015-06-08 16:24:14 | 0 | 7 | 631 | 跑步 | 2.697480 | 2.697480 |
2015-06-13 07:32:50 | 8236076 | 36.069780 | 103.849650 | 2430.800000 | 2414.800000 | 2015-06-13 07:32:50 | 15242 | 1.428810 | 4.788815 | 15169 | 46838.918600 | 2015-06-13 11:46:52 | 73 | 45 | 3793 | 跑步 | 3.087805 | 3.073017 |
2015-06-18 22:56:26 | 8236075 | 39.989250 | 116.361950 | 262.200000 | 294.200000 | 2015-06-18 22:56:26 | 1173 | 0.000000 | 10.398171 | 1173 | 9678.939041 | 2015-06-18 23:15:59 | 0 | 9 | 369 | 骑行 | 8.251440 | 8.251440 |
2015-06-21 20:04:22 | 8236074 | 39.966960 | 116.455860 | 1012.700000 | 879.700000 | 2015-06-21 20:04:22 | 5454 | 0.000000 | 5.284012 | 5454 | 16192.062623 | 2015-06-21 21:35:16 | 0 | 15 | 1280 | 跑步 | 2.968842 | 2.968842 |
338 rows × 18 columns
详细.distance= 详细.distance.map(lambda x:int(float(x)))
详细.hot= 详细.hot.map(lambda x:int(float(x)))
详细.index= 详细.开始时间
详细['移动速度']= 详细.移动距离/详细.移动时间
详细['平均速度']= 详细.移动距离/详细.总时间
详细[详细.type=='跑步'].移动速度.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x80c92f0>
详细[详细.type=='骑行'].移动速度.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x8161f10>
exceptids=详细[(详细.lng<116.1)|(详细.lng>116.7)|(详细.lat<39.9)|(详细.lat>40.1)].id
def filtercity(r):
sp=r.split('/')[-1].split('.')
if sp[1]!='gpx':
return False;
if sp[0] in exceptids.values:
return False;
return True;
import shutil
bjids= [r for r in gpxs if filtercity(r)]
len(bjids)
327
for r in gpxs:
if filtercity(r):
shutil.copy(r, r.replace('rungps','rungpsbj'))
import zipfile