You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas升级后用concat替代append报错,如何修复?

修复Pandas中concat替代append的GPX数据处理错误

你遇到的错误是因为pandas.concat()只能拼接Series或DataFrame对象,直接传入字典不符合要求。下面提供两种修复方案:

方案1:修正concat的使用方式

把单个字典转换为DataFrame后再进行拼接:

import pandas as bib_pandas
gpx = mod_gpxpy.parse(open(dir_file))   # 读取GPX文件
gpx_points = gpx.tracks[0].segments[0].points
data_frame = bib_pandas.DataFrame(columns=["lon", "lat", "elev", "time"])
for point in gpx_points:
    # 将单行字典转为DataFrame
    new_row_df = bib_pandas.DataFrame([{
        "lon": point.longitude,
        "lat": point.latitude,
        "elev": point.elevation,
        "time": point.time
    }])
    # 拼接并更新DataFrame
    data_frame = bib_pandas.concat([data_frame, new_row_df], ignore_index=True)

方案2:更高效的批量生成方式(推荐)

循环中反复调用concat会频繁创建新对象,数据量大时性能低下。推荐先收集所有数据到列表,再一次性生成DataFrame:

import pandas as bib_pandas
gpx = mod_gpxpy.parse(open(dir_file))   # 读取GPX文件
gpx_points = gpx.tracks[0].segments[0].points

# 批量收集所有点位数据
point_data = []
for point in gpx_points:
    point_data.append({
        "lon": point.longitude,
        "lat": point.latitude,
        "elev": point.elevation,
        "time": point.time
    })

# 一次性生成DataFrame
data_frame = bib_pandas.DataFrame(point_data, columns=["lon", "lat", "elev", "time"])

这种方式不仅避免了弃用警告,还能大幅提升数据处理效率,是Pandas官方推荐的最佳实践。

内容的提问来源于stack exchange,提问作者StOMicha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:50:27