【问题标题】:ValueError: Length of values does not match length of index despite being the proper sizeValueError:尽管大小合适,但值的长度与索引的长度不匹配
【发布时间】:2019-12-21 04:45:56
【问题描述】:

我正在尝试在我的数据框中插入一列。这是我的代码:

Dissociaton_Constant_Table=pd.DataFrame(Dissociation_Constant)
Dissociaton_Constant_Table.columns=['kD', 'Standard Deviation', 'R2']
File_names_array=np.array(File_Names)
print(len(File_names_array))
print(Dissociaton_Constant_Table.shape)
Dissociaton_Constant_Table.insert(0,'Files',[File_names_array])

这就是 File_names:

['first.txt', 'second.txt', 'third.txt', 'fourth.txt', 'fifth.txt', 'sixth.txt']

这就是我要添加的列大小的打印输出,我的数据表是:

6
(6, 3)

所以它的尺寸合适,所以我不完全知道问题出在哪里。我试图重塑它(从 6 的一维数组到 (6,1) 的二维数组,但这不起作用)。如您所见, File_names 最初是一个列表,因此我将其更改为数组,但这也没有解决问题。所以在这一点上,我不知道为什么我得到了我得到的错误。任何帮助将不胜感激!

【问题讨论】:

  • 我假设您要添加新列 'Files'。你可以像这样分配它Dissociaton_Constant_Table['Files'] = File_names_array
  • 但我特别想将它添加到我的数据表的第 0 位(即在所有其他列的前面)。另外,为什么这条线可以工作,但我上面的代码不起作用?
  • 删除File_names_array 周围的方括号。 Dissociaton_Constant_Table.insert(0,'Files',File_names_array)
  • 效果很好,谢谢!

标签: python arrays pandas


【解决方案1】:

插入 - 您插入不正确,因为括号中不需要,您的 File_names_array已经是一个数组它应该像这样完成:

Dissociaton_Constant_Table.insert(0,'Files',File_names_array)

此外,如果不需要将其放置在特定位置 - 您可以使用:

Dissociaton_Constant_Table['Files'] = File_names_array

【讨论】:

    猜你喜欢
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    相关资源
    最近更新 更多