Python Pandas CSV-轴和大小的索引错误

gtlvzcf8  于 2022-09-21  发布在  Python
关注(0)|答案(2)|浏览(141)

尝试在导入的CSV中添加空列时,我不断收到此错误。

“索引错误:索引27超出了大小为25的轴0的边界”

最初的CSV跨越A-Z(0-25列),然后是AA、AB、AC、AD(26、27、28、29)。

OriginalCSV

出现错误的CSV当前拉伸A-Z,但尝试在之后添加列时出错-在本例中为AA。我想应该是26岁。

Problem CSV

以下是代码:

import CSV to dataframe

orders = pd.read_csv("Orders.csv", header=None)

copy columns needed from order to ordersNewCols

ordersNewCols = orders.iloc[:,[1, 3, 11, 12, 15]]

create new dataframe - ordersToSubmit

ordersToSubmit = pd.DataFrame()

copy columns from ordersNewCols to ordersToSubmit

ordersToSubmit = ordersNewCols.copy()
ordersToSubmit.to_csv("ordersToSubmit.csv", index=False)

Insert empty columns where needed.

ordersToSubmit.insert(2,None,'')
ordersToSubmit.insert(3,None,'')
ordersToSubmit.insert(4,None,'')
ordersToSubmit.insert(6,None'')
ordersToSubmit.insert(7,None,'')
ordersToSubmit.insert(8,None'')
ordersToSubmit.insert(9,None,'')
ordersToSubmit.insert(10,None,'')
ordersToSubmit.insert(11,None,'')
ordersToSubmit.insert(12,None,'')
ordersToSubmit.insert(13,None,'')
ordersToSubmit.insert(14,None,'')
ordersToSubmit.insert(15,None,'')
ordersToSubmit.insert(16,None,'')
ordersToSubmit.insert(18,None,'')
ordersToSubmit.insert(19,None,'')
ordersToSubmit.insert(20,None,'')
ordersToSubmit.insert(21,None,'')
ordersToSubmit.insert(22,None,'')
ordersToSubmit.insert(23,None,'')
ordersToSubmit.insert(27,None,'')

IndexError: index 27 is out of bounds for axis 0 with size 25


“”“

如何将其扩展为不出现错误?

CSV屏幕打印
ttisahbt

ttisahbt1#

实际上,索引从0开始,因此第25个元素的列索引是24(而不是25)。要扩展大小为25的 Dataframe ,您需要更改以下行:

ordersToSubmit.insert(27,None,'') -> ordersToSubmit.insert(25,None,'')

25是第26个元素的索引,因此将 Dataframe 扩展了一列。在这种情况下,索引25及以上是越界的。

brccelvz

brccelvz2#

如果不查看您的CSV文件,就很难判断是什么导致了这个问题。

不管怎样..。

来自Pandas.DataFrame.Insert documentation

locint
Insertion index. Must verify 0 <= loc <= len(columns).

正如你所看到的,它说loc必须在len(columns)之间,所以根据这一点,你正在尝试的是非法的。我认为,如果您尝试在小于len(columns)的索引上插入,则会将剩余列向右移动1

相关问题