csv 가져오기 판다 중 행 건너뛰기
다음을 사용하여 .csv 파일을 가져오려고 합니다.pandas.read_csv()
그러나 데이터 파일의 두 번째 행(색인이 0인 경우 인덱스 = 1인 행)은 가져오지 않습니다.
명령어와 함께 사용되는 인수가 모호하기 때문에 가져오지 않는 방법을 알 수 없습니다.
판다 웹사이트에서:
skiprows
리스트 유사 또는 정수파일 시작 시 건너뛸 행 수(0-인덱스) 또는 건너뛸 행 수(int)."
만약에.skiprows=1
인수에서 첫 번째 행을 건너뛸지 아니면 인덱스 1이 있는 행을 건너뛸지 어떻게 알 수 있습니까?
직접 시도해 볼 수 있습니다.
>>> 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
저는 아직 언급할 평판은 없지만, 추가 참조를 위해 알코 답변에 추가하고 싶습니다.
문서에서:
행 건너뛰기:파일에서 건너뛸 행에 대한 숫자 모음입니다.처음 n개 행을 건너뛸 정수일 수도 있습니다.
csv 파일을 읽다가 skiprows를 실행하다가 같은 문제가 생겼습니다.skip_rows=1을 하고 있었습니다. 이것은 작동하지 않을 것입니다.
간단한 예제에서는 csv 파일을 읽는 동안 건너뛰기 행을 사용하는 방법에 대해 설명합니다.
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
이 모든 답변에는 한 가지 중요한 점이 누락되어 있습니다. 즉, 파일의 n번째 줄은 데이터 세트의 n번째 행이 아닙니다.USGS에서 오래된 스트림 게이지 데이터를 다운로드하는 상황이 있습니다.데이터 집합의 머리에는 '#'이 주석으로 표시됩니다. 첫 번째 줄은 레이블이고, 다음 줄은 날짜 유형을 설명하는 줄이며, 데이터 자체의 마지막 줄입니다.댓글 줄이 몇 개인지는 모르겠지만 처음 몇 줄이 무엇인지는 알고 있습니다.예:
> # ----------------------------- WARNING ----------------------------------
> # Some of the data that you have obtained from this U.S. Geological Survey database
> # may not have received Director's approval. ... agency_cd site_no datetime tz_cd 139719_00065 139719_00065_cd
> 5s 15s 20d 6s 14n 10s 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)
인덱스:read_csv
CSV 파일의 줄/행 번호를 참조합니다(첫 번째 줄에는 색인 0이 있음).행을 건너뛸 수 있는 옵션은 다음과 같습니다.
from io import StringIO
csv = \
"""col1,col2
1,a
2,b
3,c
4,d
"""
pd.read_csv(StringIO(csv))
# Output:
col1 col2 # index 0
0 1 a # index 1
1 2 b # index 2
2 3 c # index 3
3 4 d # index 4
파일의 시작 부분에서 두 줄(색인 0과 1)을 건너뜁니다.열 이름도 건너뛰고(색인 0) 맨 위 줄이 열 이름에 사용됩니다.열 이름을 추가하려면 사용names = ['col1', 'col2']
매개변수:
pd.read_csv(StringIO(csv), skiprows=2)
# Output:
2 b
0 3 c
1 4 d
두 번째 및 네 번째 줄(색인 1 및 3)을 건너뜁니다.
pd.read_csv(StringIO(csv), skiprows=[1, 3])
# Output:
col1 col2
0 2 b
1 4 d
마지막 두 줄 건너뛰기:
pd.read_csv(StringIO(csv), engine='python', skipfooter=2)
# Output:
col1 col2
0 1 a
1 2 b
람다 함수를 사용하여 모든 두 번째 줄(색인 1 및 3)을 건너뜁니다.
pd.read_csv(StringIO(csv), skiprows=lambda x: (x % 2) != 0)
# Output:
col1 col2
0 2 b
1 4 d
skip[1]
첫 번째 줄이 아니라 두 번째 줄을 건너뜁니다.
언급URL : https://stackoverflow.com/questions/20637439/skip-rows-during-csv-import-pandas
'programing' 카테고리의 다른 글
div contentedable 요소에 포커스 설정 (0) | 2023.08.23 |
---|---|
검색을 수행하기 전에 라이브 jQuery 검색을 잠시 기다리려면 어떻게 해야 합니까? (0) | 2023.08.23 |
Swift에서 파일 확장자에서 파일 이름을 분할하는 방법은 무엇입니까? (0) | 2023.08.23 |
트리거를 저장, 변경 또는 삭제할 경우 MySql이 전체 프로그램을 중지합니다. (0) | 2023.08.23 |
Javascript/jQuery에서 (e)는 무엇을 의미합니까? (0) | 2023.08.23 |