source

팬더 데이터 프레임의 첫 몇 줄을 읽는 방법

lovecheck 2023. 10. 4. 22:02
반응형

팬더 데이터 프레임의 첫 몇 줄을 읽는 방법

내장된 사용 방법이 있습니까?read_csv첫 번째 책만 읽다n줄의 길이를 미리 알지 못하는 파일의 줄?읽는 데 시간이 오래 걸리는 대용량 파일이 있는데, 때때로 첫 번째 줄(예: 20줄)만 사용하여 샘플을 얻고자 합니다(그리고 전체 파일을 로드하지 않고 파일의 선두를 차지하는 것을 선호합니다).

만약 내가 총 대사의 수를 안다면 나는 다음과 같은 것을 할 수 있을 것입니다.footer_lines = total_lines - n이것을 그에게 전달합니다.skipfooter키워드 arg.현재 해결책은 수동으로 첫번째를 잡는 것입니다.n파이썬과 스트링이 있는 선팬더들에게 전해드립니다.

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))

그렇게 나쁘지는 않지만, 키워드 같은 것으로 좀 더 간결하고 '판데믹'(?)한 방법이 있을까요?

제 생각에는 당신이 사용할 수 있습니다.nrows매개 변수.문서에서:

nrows : int, default None

    Number of rows of file to read. Useful for reading pieces of large files

효과가 있는 것 같네요표준 대용량 테스트 파일(988504479바이트, 5344499줄) 중 하나 사용:

In [1]: import pandas as pd

In [2]: time z = pd.read_csv("P00000001-ALL.csv", nrows=20)
CPU times: user 0.00 s, sys: 0.00 s, total: 0.00 s
Wall time: 0.00 s

In [3]: len(z)
Out[3]: 20

In [4]: time z = pd.read_csv("P00000001-ALL.csv")
CPU times: user 27.63 s, sys: 1.92 s, total: 29.55 s
Wall time: 30.23 s

read_csv에서 'skiprows' 인수를 사용합니다. 예를 들어:

df = pd.read_csv(filename, skiprows=range(2, 20000), nrows=10000)

언급URL : https://stackoverflow.com/questions/15008970/way-to-read-first-few-lines-for-pandas-dataframe

반응형