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

pandas批量读取JSON文件生成DataFrame时Index与原文件名不匹配如何调整

问题解决方案

错误原因

你当前的逻辑是遍历i从0到5,计算6+i得到的值分别为6、7、8、9、10、11,直接和前缀weather5拼接后,就会生成weather510、weather511这类不符合预期的结果。

修复方案

方案1(推荐,通用性强)

直接用你已经读取到的原文件名去除后缀作为Index值,不需要手动拼接,完全适配现有文件名规则,后续新增其他JSON文件也不需要修改逻辑:
把原来的赋值行

df['Index'] = 'weather5' + str(6+i)

替换为:

# 去掉文件名末尾的.json后缀,直接作为Index值
df['Index'] = file_name.rsplit('.', 1)[0]

额外建议:给文件列表增加排序逻辑,避免系统返回的文件顺序不符合预期,修改文件列表生成行:

json_files = sorted([pos_json for pos_json in os.listdir(path_to_json) if pos_json.endswith('.json')])

方案2(仅适配当前场景)

如果要保留手动拼接的逻辑,直接整体计算目标数值即可:

df['Index'] = 'weather' + str(56 + i)

i从0开始遍历的情况下,56+i的结果正好对应56、57、58、59、60、61,和原文件名完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:18:05