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

如何对JSON文件增删列后保存为CSV,能否使用dataframe实现?

操作实现指南

你之前修改未生效的核心原因是pandas的DataFrame操作默认返回新对象,未赋值给变量的话修改不会保留,对应操作方法如下:

1. 新增指定列

你提到length、maxcal、mincal三列均来自原route列,可直接从原数据的route字段提取,无需额外创建空DataFrame拼接:

# 此处提取逻辑需根据你实际的route字段结构调整,示例为route列元素为包含对应key的字典场景
data['length'] = data['route'].apply(lambda x: x['length'])
data['maxcal'] = data['route'].apply(lambda x: x['maxcal'])
data['mincal'] = data['route'].apply(lambda x: x['mincal'])

如果你已经提前把三列处理为fitness2,则将上述代码替换为:

data = data.join(fitness2)

2. 删除指定列

使用drop方法指定要删除的列,赋值后修改即可生效:

data = data.drop(columns=['route', 'MapURL', 'MapURL_tc', 'MapURL_sc'])

3. 保存为CSV文件

使用to_csv方法导出,配置index=False可以不导出pandas默认生成的行索引,encoding='utf-8-sig'适配Windows下Excel打开中文不出现乱码:

data.to_csv('processed_fitness.csv', index=False, encoding='utf-8-sig')

完整代码示例

import pandas as pd

# 读取原始JSON文件
data = pd.read_json('fitness.json')

# 从route列提取三个新列,根据实际route结构调整提取逻辑
data['length'] = data['route'].apply(lambda x: x['length'])
data['maxcal'] = data['route'].apply(lambda x: x['maxcal'])
data['mincal'] = data['route'].apply(lambda x: x['mincal'])

# 删除不需要的列
data = data.drop(columns=['route', 'MapURL', 'MapURL_tc', 'MapURL_sc'])

# 导出为CSV
data.to_csv('processed_fitness.csv', index=False, encoding='utf-8-sig')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:09:03