我試圖用大熊貓讀取一個相當大的CSV文件,並將它分成兩個隨機塊,其中一個是10%的數據,另一個是90%。熊貓:對數據幀進行採樣
這是我當前的嘗試:
rows = data.index
row_count = len(rows)
random.shuffle(list(rows))
data.reindex(rows)
training_data = data[row_count // 10:]
testing_data = data[:row_count // 10]
出於某種原因,sklearn
當我嘗試使用這些產生的數據框對象中的一個SVM分類裏面拋出這個錯誤:
IndexError: each subindex must be either a slice, an integer, Ellipsis, or newaxis
我想我做錯了。有一個更好的方法嗎?
順便說一句,這將不是隨機洗牌正確反正 - 問題是'random.shuffle(名單(行))' 。 'shuffle'改變了它操作的數據,但是當你調用'list(rows)'時,你創建了一個被修改然後被丟棄的'rows'副本 - 底層的pandas Series,rows不會改變。一種解決方案是在那之後調用'rows = list(rows)',然後'random.shuffle(rows)'和'data.reindex(rows)'。 –