Panda membaca di tabel tanpa header

239

Bagaimana saya bisa membaca dalam file .csv (tanpa header) dan ketika saya hanya ingin subset kolom (katakanlah 4 dan 7 dari total 20 kolom), menggunakan panda? Sepertinya saya tidak bisa melakukannyausecols

pengguna308827
sumber

Jawaban:

351

Untuk membaca csv yang tidak memiliki tajuk dan hanya untuk kolom tertentu Anda harus melewati params header=Nonedan usecols=[3,6]untuk kolom ke-4 dan ke-7:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

Lihat dokumen

EdChum
sumber
67

Jawaban sebelumnya baik dan benar, tetapi menurut saya, namesparameter tambahan akan membuatnya sempurna, dan itu harus menjadi cara yang disarankan, terutama ketika csv tidak headers.

Larutan

Gunakan usecolsdan namesparameter

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

Bacaan tambahan

atau gunakan header=Noneuntuk secara eksplisit memberi tahu orang-orang bahwa csvtidak ada tajuk (toh kedua baris identik )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

Sehingga Anda dapat mengambil data Anda dengan

# with `names` parameter
df['colA']
df['colB'] 

dari pada

# without `names` parameter
df[0]
df[1]

Menjelaskan

Berdasarkan read_csv , ketika namesdilewatkan secara eksplisit, maka headerakan berperilaku seperti Nonealih - alih 0, sehingga seseorang dapat melewati header=Noneketika namesada.

ch33hau
sumber
9

Pastikan Anda menentukan pass header=Nonedan menambahkan usecols=[3,6]untuk kolom ke-4 dan ke-7.

Alex
sumber