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

如何将特定JSON文件转换为包含指定列的DataFrame?

没问题,我来帮你搞定这个JSON转指定列DataFrame的需求!下面用Python的pandas库(处理这类数据最常用的工具)分场景给出解决方案:

解决方案

场景1:JSON键名和目标列名完全匹配

如果你的JSON文件结构是直接包含目标列的键(比如每个条目都是扁平结构),示例JSON如下:

[
  {"hour": 8, "frappucino": 2, "soda": 0, "coffee": 15, "tea": 5, "water": 3, "milkshake": 1, "nothing": 0, "sandwich": 4, "pie": 2, "muffin": 3, "cookie": 6},
  {"hour": 9, "frappucino": 5, "soda": 2, "coffee": 22, "tea": 8, "water": 4, "milkshake": 0, "nothing": 1, "sandwich": 7, "pie": 3, "muffin": 5, "cookie": 9}
]

转换代码非常简洁:

import pandas as pd

# 读取JSON文件
df = pd.read_json("your_file.json")

# 强制指定列的顺序(确保和你要求的完全一致)
target_columns = ["hour", "frappucino", "soda", "coffee", "tea", "water", "milkshake", "nothing", "sandwich", "pie", "muffin", "cookie"]
df = df[target_columns]

# 查看转换结果
print(df.head())

场景2:JSON结构嵌套/键名不匹配

如果你的JSON是嵌套结构,或者键名和目标列不一致(比如把饮品和食物分在不同子对象里),示例JSON如下:

[
  {"time_hour": 8, "drinks": {"frap": 2, "soda": 0, "coffee": 15, "tea":5, "water":3, "milkshake":1, "none":0}, "food": {"sandwich":4, "pie":2, "muffin":3, "cookie":6}},
  {"time_hour":9, "drinks": {"frap":5, "soda":2, "coffee":22, "tea":8, "water":4, "milkshake":0, "none":1}, "food": {"sandwich":7, "pie":3, "muffin":5, "cookie":9}}
]

我们可以手动映射字段,确保数据对应到正确的列:

import pandas as pd
import json

# 读取并加载JSON数据
with open("your_file.json", "r") as f:
    raw_data = json.load(f)

# 逐个处理条目,映射到目标列
processed_data = []
for item in raw_data:
    processed_item = {
        "hour": item.get("time_hour", 0),  # 缺失字段用0填充,可按需修改默认值
        "frappucino": item["drinks"].get("frap", 0),
        "soda": item["drinks"].get("soda", 0),
        "coffee": item["drinks"].get("coffee", 0),
        "tea": item["drinks"].get("tea", 0),
        "water": item["drinks"].get("water", 0),
        "milkshake": item["drinks"].get("milkshake", 0),
        "nothing": item["drinks"].get("none", 0),
        "sandwich": item["food"].get("sandwich", 0),
        "pie": item["food"].get("pie", 0),
        "muffin": item["food"].get("muffin", 0),
        "cookie": item["food"].get("cookie", 0)
    }
    processed_data.append(processed_item)

# 转换为DataFrame
df = pd.DataFrame(processed_data)

# 查看结果
print(df.head())

小提示

  • 记得把代码里的"your_file.json"替换成你实际的文件路径。
  • 如果JSON里有缺失字段,get()方法可以设置默认值(示例用的0),避免程序报错。
  • 如果你的JSON结构更特殊,可以根据实际情况调整字段映射的逻辑。

内容的提问来源于stack exchange,提问作者L.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:00:29