将GPS数据加载到熊猫数据框时,不可散列类型:'SimpleTZ'

问题描述 投票:0回答:1

我一直在解析R中的一些GPS轨迹,并且以为我会在Python中尝试同样的事情,即使我的Python技能很弱。

我正在处理https://towardsdatascience.com/how-tracking-apps-analyse-your-gps-data-a-hands-on-tutorial-in-python-756d4db6715d

一切顺利,直到

df = pd.DataFrame(columns=['lon', 'lat', 'alt', 'time'])
for point in data:
    df = df.append({'lon': point.longitude, 'lat' : point.latitude, 'alt' : point.elevation, 'time' : point.time}, ignore_index=True)

这给我一个以结尾结尾的错误

TypeError:不可哈希类型:'SimpleTZ'

一个GPS点看起来像这样:

GPXTrackPoint(40.08285088, -75.19106663, elevation=144.4, time=datetime.datetime(2019, 10, 22, 18, 36, 41, tzinfo=SimpleTZ("Z")))

我正在Windows上通过Anaconda在Jupyter中使用Python 3.7.0。

我更愿意用区域解析时间戳,但如果这样会使事情变得容易得多,我愿意放弃该区域。

python pandas dataframe time gis
1个回答
0
投票

我感觉这比gpxpy问题更多是熊猫问题。甚至是一般的时区问题?

无论如何,这种与https://ocefpaf.github.io/python4oceanographers/blog/2014/08/18/gpx/稍有不同的方法确实有效

data = []
gpx = gpxpy.parse(open(gpxfile))
track = gpx.tracks[0]
segment = track.segments[0]

for point_idx, point in enumerate(segment.points):
    data.append([point.longitude, point.latitude,
                 point.elevation, point.time, segment.get_speed(point_idx)])

columns = ['Longitude', 'Latitude', 'Altitude', 'Time', 'Speed']
df = DataFrame(data, columns=columns) 
© www.soinside.com 2019 - 2024. All rights reserved.