簡體   English   中英

Python Pandas CSV - 軸和大小的索引錯誤

[英]Python Pandas CSV - IndexError with axis and size

嘗試在導入的 CSV 中添加空列時,我不斷收到此錯誤。

“IndexError:索引 27 超出了尺寸為 25 的軸 0 的范圍”

原始 CSV 跨越 AZ(0-25 列),然后是 AA、AB、AC、AD(26、27、28、29)。

原始CSV

帶有錯誤的 csv 當前會拉伸 AZ,但在嘗試添加之后的列時會發生錯誤 - 在本例中為 AA。 我猜那將是26。

問題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 絲網印刷

如果不查看您的 csv 文件,很難判斷是什么導致了這個問題。

無論如何...

來自 pandas.DataFrame.insert 文檔

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

正如你所看到的,它說 loc 必須在len(columns)之間,所以你正在嘗試的是非法的。 我認為如果您嘗試在小於len(colomns)的索引上插入,它會將剩余的列向右移動 1

實際上,您的索引從 0 開始,因此第 25 個元素的列索引是 24(不是 25)。 要將 dataframe 擴展為 25,您需要更改以下行:

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

25 是第 26 個元素的索引,因此將您的 dataframe 擴展一列。 在這種情況下,索引 25 及以上是超出范圍的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM