Python数据清洗:strava运动跑步和骑行路径路线经纬度散点序列数据

您所在的位置:网站首页 strava下载路线 Python数据清洗:strava运动跑步和骑行路径路线经纬度散点序列数据

Python数据清洗:strava运动跑步和骑行路径路线经纬度散点序列数据

2024-04-05 22:36| 来源: 网络整理| 查看: 265

在这这个链接中(https://download.csdn.net/download/zhangphil/13614362),离线下载数据文件,这是strava一个在线的运动跑步和骑行路径路线经纬度散点序列数据,数据集中包含了路线中经过的经纬度点数据,如图:

对上面的数据文件strava_com_sample_utf8.xls进行清洗,python代码如下:

import pandas as pd import json from json import JSONDecodeError KEYS = ['名称', '起点坐标', '终点坐标', '路线'] def opt_latlng(latlng): newll = [] newll.append(abs(latlng[0])) newll.append(abs(latlng[1])) return newll def get_raw_data(): df = pd.read_excel(io='strava_com_sample_utf8.xls', sheet_name='sheet1') # print(df.columns.values) data = df.loc[:, KEYS] data = data.dropna(axis=0, subset=['起点坐标', '终点坐标', '路线']) # 丢弃'起点坐标', '终点坐标', '路线'这三列中有缺失值的行。 res = [] # 注意路线列中包含三项子内容:latlng,distance,altitude for v in data.values: try: json.loads(v[3]) bundle = {} for i in range(len(KEYS)): bundle.setdefault(KEYS[i], v[i]) res.append(bundle) except JSONDecodeError: print('JSONDecodeError错误') return res def strToList(str_latlng): lat, lng = str_latlng.split(',') ll = list([abs(float(lat)), abs(float(lng))]) return ll def get_data(raw_data): data = [] for d in raw_data: jd = json.loads(d['路线']) latlng = jd['latlng'] latlngs = [] for ll in latlng: latlngs.append(opt_latlng(ll)) bundle = {} bundle.setdefault(KEYS[0], d[KEYS[0]]) bundle.setdefault(KEYS[1], strToList(d[KEYS[1]])) bundle.setdefault(KEYS[2], strToList(d[KEYS[2]])) bundle.setdefault(KEYS[3], latlngs) data.append(bundle) return data if __name__ == '__main__': data = get_data(get_raw_data()) print(data)

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3