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

解决Pandas将不等长列表写入CSV时的数组长度不一致错误

解决列表长度不等时写入CSV的ValueError问题

pandas 创建 DataFrame 时要求所有列的元素数量必须一致,你的 VID 列表有4个元素,IMG 只有3个,因此触发 ValueError: All arrays must be of the same length 错误。以下是几种可行的解决方法:

方法1:用 itertools.zip_longest 对齐列表

利用 zip_longest 自动将短列表补全至最长列表的长度,默认用 NaN 填充空缺,也可指定自定义填充值:

import pandas as pd
from itertools import zip_longest

VID = ['00001', '05445', '987457', '15455'] 
IMG = ['00001', '05445', '987457'] 

# 默认用NaN填充空缺
df = pd.DataFrame(list(zip_longest(VID, IMG)), columns=['video', 'image'])
# 若要指定填充值(比如空字符串),改为:
# df = pd.DataFrame(list(zip_longest(VID, IMG, fillvalue='')), columns=['video', 'image'])

df.to_csv("./file.csv", sep=',', index=False)

方法2:先创建单列DataFrame,再添加另一列

先基于长列表创建DataFrame,再添加短列表作为新列,pandas会自动用 NaN 补全空缺:

import pandas as pd

VID = ['00001', '05445', '987457', '15455'] 
IMG = ['00001', '05445', '987457'] 

df = pd.DataFrame({"video": VID})
df["image"] = IMG  # 长度不足时自动补NaN

df.to_csv("./file.csv", sep=',', index=False)

方法3:手动补全短列表

计算两个列表的长度差,给短列表添加对应数量的填充值(比如空字符串、None),再创建DataFrame:

import pandas as pd

VID = ['00001', '05445', '987457', '15455'] 
IMG = ['00001', '05445', '987457'] 

length_diff = len(VID) - len(IMG)
if length_diff > 0:
    IMG += [''] * length_diff  # 用空字符串填充,可替换为None或其他值
elif length_diff < 0:
    VID += [''] * (-length_diff)

df = pd.DataFrame({"video": VID, "image": IMG})
df.to_csv("./file.csv", sep=',', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:50:32