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

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


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.


9

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.