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

将字典转换为pandas DataFrame写入csv时报ValueError如何解决

错误触发原因
  • 你调用df.to_dict()时使用默认参数,返回的是嵌套字典结构:每个列名作为key,对应的value是**{行索引: 对应行取值}的字典**。
  • 后续你直接将Temperature对应的值替换成了纯列表,导致varDict中除目标列外其余字段都是字典结构,仅目标列为列表结构。
  • from_dict遇到混合结构时无法确定数据对齐逻辑,因此抛出该错误。
解决方法

推荐方案:直接操作DataFrame,避免冗余转换

你的需求仅为修改指定列的数值,不需要做字典的来回转换,直接在读取的原始DataFrame上覆写目标列即可,代码更简洁也不会触发结构冲突:

import pandas as pd

filename = "example_data.csv"
variable = "Temperature"

# 读取原始数据
df = pd.read_csv(filename, header=0)
# 模拟外部返回的扰动数据,直接赋值给目标列
df[variable] = [0]*len(df)
# 写入时添加index=False参数,避免输出多余的索引列,保证和原文件结构一致
df.to_csv("example_output.csv", index=False)

兼容方案:必须从扰动字典生成DataFrame的场景

如果业务逻辑要求必须接收外部返回的扰动字典做转换,可以在调用to_dict时指定orient='list',让所有列对应的值都为纯列表,保证结构统一:

import pandas as pd

filename = "example_data.csv"
variable = "Temperature"

df = pd.read_csv(filename, header=0)
# 转字典时指定orient='list',所有列对应值都为列表结构
varDict = df.to_dict(orient='list')
# 模拟外部扰动字典逻辑
pertDict = varDict
pertDict[variable] = [0]*len(df)
# 结构统一后可以正常转换为DataFrame
new_df = pd.DataFrame.from_dict(varDict)
new_df.to_csv("example_output.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:36:04