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.