csv import pandas 중 행 건너 뛰기


98

을 사용하여 .csv 파일 pandas.read_csv()을 가져 오려고하는데 데이터 파일의 두 번째 행 (0- 인덱싱의 경우 인덱스 = 1 인 행)을 가져오고 싶지 않습니다.

명령에 사용 된 인수가 모호해 보이기 때문에 가져 오지 않는 방법을 알 수 없습니다.

pandas 웹 사이트에서 :

skiprows : 목록 유사 또는 정수

건너 뛸 행 번호 (0- 인덱싱) 또는 파일 시작 부분에서 건너 뛸 행 수 (int). "

skiprows=1인수를 입력 하면 첫 번째 행을 건너 뛸지 아니면 인덱스 1이있는 행을 건너 뛸지 어떻게 알 수 있습니까?


2
나는 그것이 "목록과 유사하거나 정수"일 수 있다고 말한 다음 두 가지 옵션 (행 건너 뛰기 또는 시작에서 # 행 건너 뛰기)을 제공 한 다음 목록 [1]을 제공하면 행을 건너 뛸 것입니다. 1 (두 번째 행). 정수 (예 : 10)를 주면 처음 10 개 행을 건너 뜁니다.
Ffisegydd

1
효과가 좋았습니다. 매우 감사합니다. index와 int를 어떻게 구별할지 궁금했습니다. []가 답입니다.
thosphor dec.

답변:


149

직접 시도해 볼 수 있습니다.

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

네, 감사합니다. 색인이 대괄호 안에 지정되어 있다는 것을 알고 싶었습니다 [].
thosphor

11
파이썬 3 : from io import StringIO
디마 Lituiev

^ 전혀 가져올 필요가 없으며 pd.compat.StringIO .
cs95

30

아직 논평 할 평판이 없지만 추가 참조를 위해 alko 답변에 추가하고 싶습니다 .

로부터 문서 :

skiprows : 파일에서 건너 뛸 행의 숫자 모음입니다. 처음 n 개 행을 건너 뛰는 정수일 수도 있습니다.


14

csv 파일을 읽는 동안 skiprows를 실행하는 동안 동일한 문제가 발생했습니다. 나는 skip_rows = 1을 기부했다. 이것은 작동하지 않을 것이다.

간단한 예제는 csv 파일을 읽는 동안 skiprows를 사용하는 방법을 제공합니다.

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

1

이 모든 답변은 한 가지 중요한 점을 놓친 것입니다. n 번째 줄은 파일의 n 번째 줄이고 데이터 집합의 n 번째 줄이 아닙니다. USGS에서 구식 하천 게이지 데이터를 다운로드하는 상황이 있습니다. 데이터 세트의 헤드는 '#'으로 주석 처리되며 그 다음 첫 번째 줄은 레이블이고 다음으로 날짜 유형을 설명하는 줄이 나옵니다. 얼마나 많은 주석 줄이 있는지는 모르지만 처음 몇 줄이 무엇인지 압니다. 예:

----------------------------- 경고 -------------------- --------------

이 미국 지질 조사 데이터베이스에서 얻은 데이터 중 일부

감독의 승인을받지 못했을 수 있습니다. ... agency_cd site_no datetime tz_cd 139719_00065 139719_00065_cd

5 초 15 초 20 일 6 초 14n 10 초 USGS 08041780 2018-05-06 00:00 CDT 1.98 A

n 번째 줄과 n 번째 줄을 자동으로 건너 뛰는 방법이 있다면 좋을 것입니다.

참고로 다음과 같은 문제를 해결할 수있었습니다.

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

-1

skip[1] 첫 번째 줄이 아니라 두 번째 줄을 건너 뜁니다.


-8

또한 파일이 실제로 CSV 파일인지 확인하십시오. 예를 들어 .xls 파일이 있고 파일 확장자를 .csv로 변경 한 경우 파일을 가져올 수 없으며 위의 오류가 발생합니다. 이것이 문제인지 확인하려면 Excel에서 파일을 열면 다음과 같이 표시됩니다.

" 'Filename.csv'의 파일 형식과 확장자가 일치하지 않습니다. 파일이 손상되었거나 안전하지 않을 수 있습니다. 출처를 신뢰하지 않는 한 열지 마십시오.여시겠습니까?"

파일을 수정하려면 : Excel에서 파일을 열고 "다른 이름으로 저장"을 클릭하고 저장할 파일 형식 (.cvs 사용)을 선택한 다음 기존 파일을 바꿉니다.

이것은 내 문제이며 나를 위해 오류를 수정했습니다.


10
이것은 당신의 문제 일 수 있지만, 그것은 질문과 관련이 없으며 대답을 시도하지도 않습니다. 다른 추가 문제를 간단히 설명합니다. "노트북을 충전하는 것도
잊지 마세요
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.