かなり大きなCSVファイルをパンダで読み込み、2つのランダムなチャンクに分割しようとしています.1つはデータの10%、もう1つは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]
、私はSVM分類器の内部でこれらの結果のデータフレームのオブジェクトのいずれかを使用しようとすると、sklearn
は、このエラーがスローされます:
IndexError: each subindex must be either a slice, an integer, Ellipsis, or newaxis
私が思う
は、ここに私の現在の試みです私は間違っているよ。これを行うより良い方法はありますか?
、これはランダムにとにかく正しくシャッフルではないでしょう - 問題は、 'random.shuffle(リスト(行))です' 。 'shuffle'はそれが操作するデータを変更しますが、' list(rows) 'を呼び出すと、変更されてスローされた' rows'のコピーを作ります - 基礎となるパンダシリーズ 'rows'は変更されません。 1つの解決策は 'rows = list(rows)'を呼び出し、その後に 'random.shuffle(rows)'と 'data.reindex(rows)'を呼び出すことです。 –