2017-05-16 14 views
0

Ich lese eine große Datei separat seit pd.read_csv verursacht in der Regel Fehler und Herunterfahren der Kern in Ipython Notebook beim Lesen großer CSV-Datei.python pandas read_csv skiprows funktioniert nicht

Allerdings funktioniert die Skiprow-Funktion nicht in meinem Fall haben die Pandas auf die neueste Version auf 0,20.1 aktualisiert, aber die skiprows-Funktion funktioniert immer noch nicht.

Im folgenden Teil möchte ich die ersten beiden Zeilen überspringen und nur die zweite bis sechste Zeile lesen. Die ersten beiden Zeilen konnten jedoch nicht mit skiprows in pd.read_csv übersprungen werden.

def read(path, header): 
    df= pd.read_csv(path, nrows=6, engine='python') 
    df1= pd.read_csv(path, skiprows=2, nrows=6, engine='python') 
    df.columns= header  

    print df.shape 
    print df1.shape 
    return df 

und die Ergebnisse stellt sich heraus,

(6, 26) 
(6, 26) 

zu sein, die zeigt, dass die skiprows überhaupt nicht arbeiten .. gegoogelt haben, aber nicht sehen, jemand das gleiche Problem wie ich mit .. Ich frage mich, ob ich einen wichtigen Teil verpasst habe, der dieses Problem verursacht.

Vielen Dank im Voraus.


hinzugefügt Informationen:

die ersten sieben Zeilen meiner CSV-Dateien:

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 

20151201000000,b616e9b1f0b488ed2aacf08b6165fc4f76f664aeae46c20c49b7e1e2c81e5f71-ee42bb396f6f56f518c5b04df271c1f173c0bcf13496294464b8d87d3ee17945,(SFC) ウイザードリイ・外伝4 (管理:4366),4988606101009,998,1,17297,2511,2161,16899,16900,16903,,,,,shopping,game_and_toy,video_game,retro_game,super_famicom,software,,,," 

" 

20151201000000,b616e9b1f0b488ed2aacf08b6165fc4f76f664aeae46c20c49b7e1e2c81e5f71-ee42bb396f6f56f518c5b04df271c1f173c0bcf13496294464b8d87d3ee17945,(SFC) スーパードラッケン (管理:3701),4906571521028,298,1,17297,2511,2161,16899,16900,16903,,,,,shopping,game_and_toy,video_game,retro_game,super_famicom,software,,,," 

" 

20151201000000,b616e9b1f0b488ed2aacf08b6165fc4f76f664aeae46c20c49b7e1e2c81e5f71-ee42bb396f6f56f518c5b04df271c1f173c0bcf13496294464b8d87d3ee17945,(FC) サンダーバード (管理:9347),4988110900051,498,1,17302,2511,2161,16899,16904,16908,,,,,shopping,game_and_toy,video_game,retro_game,nes,software,,,," 

" 

20151201000000,b616e9b1f0b488ed2aacf08b6165fc4f76f664aeae46c20c49b7e1e2c81e5f71-ee42bb396f6f56f518c5b04df271c1f173c0bcf13496294464b8d87d3ee17945,(FC) ガンサイト (管理:8853),4988602564624,198,1,17302,2511,2161,16899,16904,16908,,,,,shopping,game_and_toy,video_game,retro_game,nes,software,,,," 

" 


    20151201000000,b616e9b1f0b488ed2aacf08b6165fc4f76f664aeae46c20c49b7e1e2c81e5f71-ee42bb396f6f56f518c5b04df271c1f173c0bcf13496294464b8d87d3ee17945,(SFC) プリンセスメーカー (管理:4201),4904880133802,298,1,17297,2511,2161,16899,16900,16903,,,,,shopping,game_and_toy,video_game,retro_game,super_famicom,software,,,," 

es ist sehr schmutzig und eine redundante Leitung „“ tritt eine der beiden Reihen ..

+2

Wie sieht Ihre Datei aus? – EdChum

+0

Hallo, ich möchte die Zeile von 3 bis 6 lesen, indem ich die ersten 2 Zeilen überspringe. –

+1

Bitte fügen Sie ein Beispiel Ihrer CSV-Datei –

Antwort

1

nrows ist vom Start Offset, nicht vom Anfang der Datei. Sie möchten nrows=4.

+0

Hallo Kyle, In der Praxis, "skiprows = 3000001, nrows = 6000000". nicht übersprungen .. –

+2

@LeighTsai die tatsächliche Anzahl der Zeilen zu überspringen, oder Zeilen zu lesen, spielt keine Rolle. Sie müssen sich nur daran erinnern, dass 'read_csv()' die Anzahl der in 'nrows' angegebenen Zeilen zurückgibt, unabhängig davon, was 'skiprows' ist. – Kyle

+0

@Kyle danke für die Klärung! jetzt sehe ich, wie es gerade geht! –

Verwandte Themen