【问题标题】:Error: all arrays must be same length. But they ARE the same length错误:所有数组的长度必须相同。但它们的长度相同
【发布时间】:2018-04-02 03:17:00
【问题描述】:

我正在做一些关于情感分析的工作,这里我有三个数组:句子的内容、情感分数和关键词。

我想将它们显示为 pandas 的数据框,但我得到了: “ValueError:数组的长度必须相同”

这是我的一些代码:

 print(len(text_sentences),len(score_list),len(keyinfo_list))

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

    print(df)

结果如下:

182 182 182

ValueError                                Traceback (most recent call last)
<ipython-input-15-cfb70aca07d1> in <module>()
     21 print(len(text_sentences),len(score_list),len(keyinfo_list))
     22 
---> 23 df = pd.DataFrame(text_sentences,score_list,keyinfo_list)
     24 
     25 print(df)

E:\learningsoft\anadonda\lib\site-packages\pandas\core\frame.py in __init__(self, data, index, columns, dtype, copy)
    328                 else:
    329                     mgr = self._init_ndarray(data, index, columns, dtype=dtype,
--> 330                                              copy=copy)
    331             else:
    332                 mgr = self._init_dict({}, index, columns, dtype=dtype)

E:\learningsoft\anadonda\lib\site-packages\pandas\core\frame.py in _init_ndarray(self, values, index, columns, dtype, copy)
    472                     raise_with_traceback(e)
    473 
--> 474         index, columns = _get_axes(*values.shape)
    475         values = values.T
    476 

E:\learningsoft\anadonda\lib\site-packages\pandas\core\frame.py in _get_axes(N, K, index, columns)
    439                 columns = _default_index(K)
    440             else:
--> 441                 columns = _ensure_index(columns)
    442             return index, columns
    443 

E:\learningsoft\anadonda\lib\site-packages\pandas\core\indexes\base.py in _ensure_index(index_like, copy)
   4015         if len(converted) > 0 and all_arrays:
   4016             from .multi import MultiIndex
-> 4017             return MultiIndex.from_arrays(converted)
   4018         else:
   4019             index_like = converted

E:\learningsoft\anadonda\lib\site-packages\pandas\core\indexes\multi.py in from_arrays(cls, arrays, sortorder, names)
   1094         for i in range(1, len(arrays)):
   1095             if len(arrays[i]) != len(arrays[i - 1]):
-> 1096                 raise ValueError('all arrays must be same length')
   1097 
   1098         from pandas.core.categorical import _factorize_from_iterables

ValueError: all arrays must be same length

您可以看到我所有的三个数组都包含 182 个元素,所以我不明白为什么它说“所有数组必须是相同的长度”。

【问题讨论】:

  • 检查索引列是否有重复项

标签: python pandas dataframe


【解决方案1】:

您将错误的数据传递给pandas.DataFrame's initializer。 你使用它的方式,你实际上是在运行:

pandas.DataFrame(data=text_sentences, index=score_list, columns=keyinfo_list)

这不是你想要的。你可能想要做这样的事情:

pd.DataFrame(data={
    'sentences': text_sentences,
    'scores': score_list,
    'keyinfo': keyinfo_list
})

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 2019-05-04
    • 1970-01-01
    • 2021-07-12
    • 2017-06-22
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多