Lewati baris selama panda impor csv

99

Saya mencoba mengimpor file .csv menggunakan pandas.read_csv(), namun saya tidak ingin mengimpor baris ke-2 dari file data (baris dengan indeks = 1 untuk pengindeksan 0).

Saya tidak dapat melihat cara untuk tidak mengimpornya karena argumen yang digunakan dengan perintah tersebut tampak ambigu:

Dari situs pandas:

skiprows : seperti daftar atau bilangan bulat

Nomor baris yang dilewati (0-indeks) atau jumlah baris yang dilewati (int) di awal file. "

Jika saya memasukkan skiprows=1argumen, bagaimana cara mengetahui apakah akan melewati baris pertama atau melewati baris dengan indeks 1?

fosfor
sumber
2
Saya akan menebak bahwa seperti yang dinyatakan itu bisa menjadi "list-like or integer" dan kemudian memberi Anda dua opsi (baik lewati baris atau lewati # baris di awal) maka jika Anda memberikannya daftar [1] itu hanya akan melewati baris 1 (baris ke-2). Jika Anda memberikannya bilangan bulat (misalnya 10) maka 10 baris pertama akan dilewati.
Ffisegydd
1
Bagus itu berhasil. Terima kasih banyak. Hanya bertanya-tanya bagaimana itu akan membedakan antara index dan int. [] adalah jawabannya.
fosfor

Jawaban:

150

Anda dapat mencoba sendiri:

>>> import pandas as pd
>>> from StringIO import StringIO
>>> s = """1, 2
... 3, 4
... 5, 6"""
>>> pd.read_csv(StringIO(s), skiprows=[1], header=None)
   0  1
0  1  2
1  5  6
>>> pd.read_csv(StringIO(s), skiprows=1, header=None)
   0  1
0  3  4
1  5  6
alko
sumber
Ya terima kasih, saya hanya perlu tahu bahwa indeks ditentukan di dalam tanda kurung siku [].
fosfor
11
dengan Python 3: from io import StringIO
Dima Lituiev
^ Tidak perlu mengimpor sama sekali, ini langsung dapat diakses sebagai pd.compat.StringIO .
cs95
30

Saya belum punya reputasi untuk berkomentar, tapi saya ingin menambahkan jawaban alko untuk referensi lebih lanjut.

Dari dokumen :

skiprows: Kumpulan angka untuk baris dalam file yang akan dilewati. Bisa juga berupa bilangan bulat untuk melewati n baris pertama

Hugo
sumber
14

Saya mendapat masalah yang sama saat menjalankan skiprow saat membaca file csv. Saya mengenakan skip_rows = 1 ini tidak akan berhasil

Contoh sederhana memberikan gambaran bagaimana menggunakan skiprows saat membaca file csv.

import pandas as pd

#skiprows=1 will skip first line and try to read from second line
df = pd.read_csv('my_csv_file.csv', skiprows=1)  ## pandas as pd

#print the data frame
df
Viraj Wadate
sumber
1

Semua jawaban ini kehilangan satu poin penting - baris ke-n adalah baris ke-n dalam file, dan bukan baris ke-n dalam dataset. Saya mengalami situasi di mana saya mengunduh beberapa data pengukur aliran kuno dari USGS. Kepala dataset diberi komentar dengan '#', baris pertama setelah itu adalah label, selanjutnya muncul baris yang menjelaskan jenis tanggal, dan terakhir datanya sendiri. Saya tidak pernah tahu berapa banyak baris komentar, tapi saya tahu apa beberapa baris pertama. Contoh:

----------------------------- PERINGATAN -------------------- --------------

Beberapa data yang Anda peroleh dari database US Geological Survey ini

mungkin belum menerima persetujuan Direktur. ... agency_cd site_no datetime tz_cd 139719_00065 139719_00065_cd

5s 15s 20d 6s 14n 10s USGS 08041780 2018-05-06 00:00 CDT 1,98 A

Alangkah baiknya jika ada cara untuk melewati baris ke-n dan juga baris ke-n secara otomatis.

Sebagai catatan, saya dapat memperbaiki masalah saya dengan:

import pandas as pd
ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True)
ds.drop(0, inplace=True)
EBo
sumber
-1

skip[1] akan melewati baris kedua, bukan yang pertama.

shanky
sumber
-8

Juga pastikan bahwa file Anda sebenarnya adalah sebuah file CSV. Misalnya, jika Anda memiliki file .xls, dan hanya mengubah ekstensi file menjadi .csv, file tidak akan diimpor dan akan menampilkan error di atas. Untuk memeriksa apakah ini masalah Anda, buka file di excel dan kemungkinan akan mengatakan:

"Format file dan ekstensi 'Filename.csv' tidak cocok. File mungkin rusak atau tidak aman. Jika Anda tidak memercayai sumbernya, jangan membukanya. Apakah Anda tetap ingin membukanya?"

Untuk memperbaiki file: buka file di Excel, klik "Simpan Sebagai", Pilih format file untuk disimpan sebagai (gunakan .cvs), lalu ganti file yang ada.

Ini adalah masalah saya, dan memperbaiki kesalahan tersebut untuk saya.

Justin R. Locke
sumber
10
Ini mungkin masalah Anda, tetapi tidak ada hubungannya dengan pertanyaan atau mencoba menjawabnya. Ini hanya menjelaskan beberapa masalah tambahan lain yang Anda miliki. Anda juga bisa mengatakan "ingat juga untuk mengisi daya laptop Anda, laptop saya tidak memiliki baterai dan saya kehilangan semua perubahan saya. Itu masalah saya"
JC Rocamonde