Python Pandas read_csv 행은 건너 뛰기 뛰지 만 헤더는 유지
csv 파일에서 n 행을 건너 뛰는 방법을 알아내는 데 문제가 1 행인 헤더는 유지합니다.
내가하고 싶은 것은 반복하지만 첫 번째 행의 헤더를 유지하는 것입니다. skiprows
뛴 행 다음의 첫 번째 행으로 만듭니다. 이를 수행하는 가장 좋은 방법은 무엇입니까?
data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)
skiprows
정수 대신 행 번호 목록을받을 수 있습니다 .
함수에 정수 10을 제공하면 처음 10 줄을 건너 뛰는 것입니다.
첫 번째 행 0 (헤더로)을 유지 한 다음 다른 모든 행을 10 행까지 건너 뛰려면 뛰려면 다음과 같이 수 있습니다.
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
다음을 사용하여 행을 건너 뛰기 뛰는 다른 방법 read_csv
read_csv
사용 하는 행을 제어하는 두 가지 주요 방법 은 header
또는 skiprows
매개 변수입니다.
열이 하나 인 다음 CSV 파일이 존재 가정합니다.
a
b
c
d
e
f
아래의 각 예 에서이 파일은 f = io.StringIO("\n".join("abcdef"))
.
모든 줄을 값으로 읽기 (헤더 없음, 정수은 정수)
>>> pd.read_csv(f, header=None) 0 0 a 1 b 2 c 3 d 4 e 5 f
특정 행을 헤더로 사용합니다 (그 앞에있는 모든 행을 건너 뛰었습니다).
>>> pd.read_csv(f, header=3) d 0 e 1 f
MultiIndex를 만드는 헤더로 여러 행을 사용합니다 (마지막으로 지정된 헤더 행 앞의 모든 행을 건너 뛰기).
>>> pd.read_csv(f, header=[2, 4]) c e 0 f
파일의 시작 부분에서 N 개 행을 건너 뛰니다 (건너 뛰지 않은 첫 번째 행이 헤더 임).
>>> pd.read_csv(f, skiprows=3) d 0 e 1 f
행 강화를 제공 하나 이상의 행을 건너하여니다 (건너 뛰지 않은 첫 번째 행이 헤더 임).
>>> pd.read_csv(f, skiprows=[2, 4]) a 0 b 1 d 2 f
이미 훌륭한 답변 .. 여기에 일반화 된 양식을 추가해야 할 것이라면 누구나 선택할 수 있습니다.이 시나리오를 고려하십시오.
xls / csv에 상위 2 개 행 (# 0,1 행)에 정크 행이 가정합니다. 행 # 2 (세 번째 행)는 실제 헤더이고 행 # 50 (즉, 51 번째 행)에서 시작하여 10 개의 행을로드합니다. 스 니펫은 다음과 가변합니다.
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
@AlexRiley의 대답을 확장하기 위해 skiprows
인수는 건너 뛸 행을 결정하는 숫자 목록을 사용합니다. 그래서:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
와 같다:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
특정 행을 무시하는 가장 좋은 방법은 무시 목록을 만들고 (수동으로 또는 range
정수 목록을 반환하는 것과 같은 함수를 사용하여 )에 전달하는 것 skiprows
입니다.
긴 csv 파일을 반복하는 경우 chunksize 인수를 사용할 수 있습니다 . 어떤 이유로 수동으로 단계를 진행해야하는 경우 수행해야하는 반복 횟수를 알고있는 한 다음을 시도 할 수 있습니다.
for i in range(num_iters):
pd.read_csv('test.csv', sep='|', header=0,
skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
특정 행을 건너 뛰거나 삭제해야하는 경우 처음 3 개 행 (예 : 0,1,2)과 2 개 행 (예 : 4,5)을 더 말합니다. 다음을 사용하여 헤더 행을 유지할 수 있습니다.
df = pd.read_csv(file_in, delimiter='\t', skiprows=[0,1,2,4,5], encoding='utf-16', usecols=cols)
참고 URL : https://stackoverflow.com/questions/27325652/python-pandas-read-csv-skip-rows-but-keep-header
'ProgramingTip' 카테고리의 다른 글
Twitter Bootstrap : navbar 내에서`.btn` 클래스를 사용하는 올바른 방법은 무엇입니까? (0) | 2020.12.01 |
---|---|
git push가 Total 줄 나중에 중단됨 (0) | 2020.12.01 |
MySQL 서버가 사라-정확히 60 초 만에 (0) | 2020.12.01 |
Nullable 열을 사용하여 NOT NULL로 변경 (0) | 2020.12.01 |
바이너리 파일 및 UTF16 grepping (0) | 2020.12.01 |