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

Pandas中对重采样后的数据使用to_json如何保留列名?

Pandas将时间索引JSON转换为指定数组格式的解决方案

嘿,我来帮你搞定这个格式转换的问题!你现在通过resample得到的Series转成JSON后是键为时间戳的对象,但想要的是每个元素包含time和amount字段的对象数组对吧?这里有两种实用的方法:

方法一:直接在Pandas中生成目标格式(推荐)

这种方法不需要额外处理JSON字符串,直接在Pandas里把数据结构调整好再转JSON,效率更高:

# 先执行resample操作得到带时间索引的Series
amount_series = df['amount'].resample('M').last()
# 将Series转为DataFrame,把时间索引转为普通列,并重命名列名
amount_df = amount_series.reset_index().rename(columns={'index': 'time', 'amount': 'amount'})
# 用orient='records'参数生成指定格式的JSON
amount_json = amount_df.to_json(orient='records')

关键说明:

  • reset_index():把原来的时间索引从索引位置转为普通列,默认列名为index
  • rename():把索引列重命名为你需要的time,保持amount列名不变
  • orient='records':这个参数会让Pandas将每行数据转为一个对象,最终输出对象数组的JSON格式,正好匹配你的需求

方法二:处理已生成的JSON字符串

如果你已经拿到了原始的JSON字符串,也可以用Python的json模块来转换:

import json

# 原始的JSON字符串
original_json = '{"1501459200000":1.79,"1504137600000":88.80}'
# 解析为Python字典
data_dict = json.loads(original_json)
# 转换为目标格式的列表
result_list = [{"time": timestamp, "amount": value} for timestamp, value in data_dict.items()]
# 再转为JSON字符串
final_json = json.dumps(result_list)

两种方法都能得到你想要的[{"time":"1501459200000","amount":1.79},{"time":"1504137600000","amount":88.80}]格式,优先推荐第一种方法哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:48:05