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

使用Pandas构建情感分析DataFrame时遇数组长度一致仍报错问题

解决Pandas创建DataFrame时的"arrays must all be same length"报错

兄弟,我太懂你这种明明数组长度对得上却报错的崩溃感了!我之前做情感分析的时候也踩过一模一样的坑,给你捋清楚问题出在哪:

你手里的text_sentences、score_list、keyinfo_list三个数组长度都是182没错,但你调用pd.DataFrame()的方式完全错了!Pandas的构造函数根本不是这么传参的——你直接把三个数组丢进去,它会把第一个数组当成表格的数据主体,第二个当成行索引,第三个当成列索引,这完全不是你想要的“三个数组各成一列”的需求,哪怕长度一致,这种逻辑也会触发报错。

先看看你写的代码:

print(len(text_sentences),len(score_list),len(keyinfo_list))
df = pd.DataFrame(text_sentences,score_list,keyinfo_list)
print(df)

对应的报错开头是:

ValueError Traceback (most recent call last) <ipython-input-...

正确的解决方法有两种,优先推荐第一种:

方法1:用字典传参(最直观)

直接把每个数组和对应的列名绑定成字典,Pandas会自动把它们拼成列对齐的DataFrame:

import pandas as pd

df = pd.DataFrame({
    "句子内容": text_sentences,
    "情感得分": score_list,
    "关键词": keyinfo_list
})
print(df)

方法2:转置行数据成列

如果习惯用列表传参,可以先把三个数组作为行放进DataFrame,再转置成列,最后给列命名:

import pandas as pd

# 先按行拼接,再转置成列
df = pd.DataFrame([text_sentences, score_list, keyinfo_list]).T
# 给列设置名称
df.columns = ["句子内容", "情感得分", "关键词"]
print(df)

另外可以顺便检查下每个数组里的元素有没有嵌套情况(比如某个元素本身是个长度不一的小列表),不过你已经确认了数组总长度都是182,大概率就是传参方式的问题,换上面的方法肯定能解决!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:27:16