Apakah ada cara bawaan untuk digunakan read_csv
hanya untuk membaca n
baris pertama file tanpa mengetahui panjang baris sebelumnya? Saya memiliki file besar yang membutuhkan waktu lama untuk membaca, dan kadang-kadang hanya ingin menggunakan yang pertama, katakanlah, 20 baris untuk mendapatkan sampelnya (dan memilih untuk tidak memuat semuanya dan mengambil alih kepalanya).
Jika saya tahu jumlah barisnya, saya bisa melakukan sesuatu seperti footer_lines = total_lines - n
dan meneruskan ini ke skipfooter
kata kunci arg. Solusi saya saat ini adalah mengambil n
baris pertama secara manual dengan python dan StringIO ke pandas:
import pandas as pd
from StringIO import StringIO
n = 20
with open('big_file.csv', 'r') as f:
head = ''.join(f.readlines(n))
df = pd.read_csv(StringIO(head))
Tidak seburuk itu, tetapi apakah ada cara yang lebih ringkas, 'pandasic' (?) Untuk melakukannya dengan kata kunci atau sesuatu?
Jawaban:
Saya pikir Anda bisa menggunakan
nrows
parameter. Dari dokumen :yang tampaknya berhasil. Menggunakan salah satu file uji besar standar (988504479 byte, 5344499 baris):
sumber
skiprows=None
juga merupakan parameter yang berguna untuk diingat