首页 > 解决方案 > ValueError:通过了 5 列,传递的数据有 2 列

问题描述

    i_list = []
    rec_annotations = []
    rec_annotations_dict = {}
    for s in filenames:
        (i,a) = Extract_Annotation_Data(s, root)
        i_list.append(i)
        rec_annotations.append(a)
        rec_annotations_dict[s] = a
    recording_info = pd.concat(i_list, axis = 0)
    recording_info.head()

那有什么问题?我收到以下错误。请帮我!
如果您需要任何详细信息,请添加评论:
注意:'Extract_Annotation_Data' 是一个函数
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!

AssertionError                            Traceback (most recent call last)
c:\users\user\appdata\local\programs\python\python36\lib\site-packages\pandas\core\internals\construction.py in _list_to_arrays(data, columns, coerce_float, dtype)
    563     try:
--> 564         columns = _validate_or_indexify_columns(content, columns)
    565         result = _convert_object_array(content, dtype=dtype, coerce_float=coerce_float)

c:\users\user\appdata\local\programs\python\python36\lib\site-packages\pandas\core\internals\construction.py in _validate_or_indexify_columns(content, columns)
    688             raise AssertionError(
--> 689                 f"{len(columns)} columns passed, passed data had "
    690                 f"{len(content)} columns"

AssertionError: 5 columns passed, passed data had 2 columns

The above exception was the direct cause of the following exception:

ValueError                                Traceback (most recent call last)
<ipython-input-81-893d2a3a2aed> in <module>
      3 rec_annotations_dict = {}
      4 for s in filenames:
----> 5     (i,a) = Extract_Annotation_Data(s, root)
      6     i_list.append(i)
      7     rec_annotations.append(a)

<ipython-input-71-6077f5c43880> in Extract_Annotation_Data(file_name, root)
      1 def Extract_Annotation_Data(file_name, root):
      2     tokens = file_name.split('_')
----> 3     recording_info = pd.DataFrame(data = [tokens], columns = ['Patient number', 'Recording index', 'Chest location','Acquisition mode','Recording equipment'])
      4     recording_annotations = pd.read_csv(os.path.join(root, file_name + '.txt'), names = ['Start', 'End', 'Crackles', 'Wheezes'], delimiter= '\t')
      5     return recording_info, recording_annotations

c:\users\user\appdata\local\programs\python\python36\lib\site-packages\pandas\core\frame.py in __init__(self, data, index, columns, dtype, copy)
    507                     if is_named_tuple(data[0]) and columns is None:
    508                         columns = data[0]._fields
--> 509                     arrays, columns = to_arrays(data, columns, dtype=dtype)
    510                     columns = ensure_index(columns)
    511 

c:\users\user\appdata\local\programs\python\python36\lib\site-packages\pandas\core\internals\construction.py in to_arrays(data, columns, coerce_float, dtype)
    522         return [], []  # columns if columns is not None else []
    523     if isinstance(data[0], (list, tuple)):
--> 524         return _list_to_arrays(data, columns, coerce_float=coerce_float, dtype=dtype)
    525     elif isinstance(data[0], abc.Mapping):
    526         return _list_of_dict_to_arrays(

c:\users\user\appdata\local\programs\python\python36\lib\site-packages\pandas\core\internals\construction.py in _list_to_arrays(data, columns, coerce_float, dtype)
    565         result = _convert_object_array(content, dtype=dtype, coerce_float=coerce_float)
    566     except AssertionError as e:
--> 567         raise ValueError(e) from e
    568     return result, columns
    569 

ValueError: 5 columns passed, passed data had 2 columns

标签: pythondatabasedata-analysis

解决方案


推荐阅读