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

如何从JSON文件为Pandas DataFrame新增对话统计列?

如何用Pandas从外部JSON文件为数据集新增total_words列?

数据集结构

Data columns (total 4 columns):
 #   Column       Non-Null Count  Dtype 
---  ------       --------------  ----- 
 0   phone        100 non-null    string
 1   group_id     100 non-null    int64 
 2   question_id  100 non-null    int64 
 3   result       100 non-null    bool 

需求:新增total_words列(int64类型),数据来自外部JSON文件(示例格式:{"total_words": 74})。此前使用pandas.read_json时出现ValueError: DataFrame constructor not properly called!和TypeError: argument of type 'method' is not iterable报错,需要可行的Pandas实现方案。


解决方案

根据JSON文件的对应关系,分两种场景处理:

场景1:单个JSON文件对应全局值(所有行共用同一个total_words)

单个字典格式的JSON无法直接用默认参数的read_json读取,可通过json模块读取后直接赋值:

import pandas as pd
import json

# 读取原数据集(根据实际格式调整,比如read_excel等)
df = pd.read_csv("your_dataset.csv")

# 读取JSON文件内容
with open("total_words.json", "r") as f:
    json_data = json.load(f)

# 新增列并指定类型
df["total_words"] = json_data["total_words"]
df["total_words"] = df["total_words"].astype("int64")

也可使用Pandas的read_json并指定orient参数:

import pandas as pd

df = pd.read_csv("your_dataset.csv")
# 读取单个字典为DataFrame,orient='index'表示按索引(键)排列
json_df = pd.read_json("total_words.json", orient="index")
# 提取值并赋值
df["total_words"] = json_df.loc["total_words", 0].astype("int64")

场景2:每行对应独立的JSON文件(按行匹配不同的JSON)

若每个样本(行)对应单独的JSON文件(比如按phone/group_id/question_id命名),可通过apply逐行读取:

import pandas as pd
import json

df = pd.read_csv("your_dataset.csv")

def fetch_total_words(row):
    # 根据行字段拼接JSON文件路径(需根据实际命名规则调整)
    json_file_path = f"{row['phone']}_{row['group_id']}_{row['question_id']}.json"
    with open(json_file_path, "r") as f:
        data = json.load(f)
    return data["total_words"]

# 新增列并转换为int64
df["total_words"] = df.apply(fetch_total_words, axis=1).astype("int64")

报错原因说明

直接使用默认参数的pd.read_json读取单个字典格式的JSON时,Pandas会默认期望输入是表格型JSON(比如数组或带列名的结构),导致构造DataFrame失败,从而抛出ValueError。通过json模块读取字典或指定orient参数,可避免这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:00:52