programing

Excel 프레임을 읽을 때 특정 열 집합 건너뛰기 - 팬더

newsource 2023. 7. 19. 21:22

Excel 프레임을 읽을 때 특정 열 집합 건너뛰기 - 팬더

엑셀 파일에서 필요 없는 열이 무엇인지 미리 알고 있으며 성능 향상을 위해 파일을 읽을 때는 피하고 싶습니다.이와 같은 것:

import pandas as pd
df = pd.read_excel('large_excel_file.xlsx', skip_cols=['col_a', 'col_b',...,'col_zz'])

설명서에는 이와 관련된 내용이 없습니다.이것에 대한 해결책이 있습니까?

만약 당신의 판다 버전이 허락한다면 (콜을 사용하는 기능을 전달할 수 있는지 먼저 확인하세요), 저는 다음과 같은 것을 시도하고 싶습니다.

import pandas as pd
df = pd.read_excel('large_excel_file.xlsx', usecols=lambda x: 'Unnamed' not in x,)

머리글 이름이 없는 모든 열을 건너뜁니다.원하지 않는 열 이름 목록을 '이름 없음'으로 대체할 수 있습니다.

다음과 같은 방법을 사용할 수 있습니다.생략할 열이 258이 되도록 한 다음 보관할 모든 리미닝 열을 찾습니다.cols다음과 같은 경우:

In [7]: cols2skip = [2,5,8]  
In [8]: cols = [i for i in range(10) if i not in cols2skip]

In [9]: cols
Out[9]: [0, 1, 3, 4, 6, 7, 9]

그런 다음 나머지 열을 사용할 수 있습니다(보관할 열).usecols:

df = pd.read_excel(filename, usecols=cols)

사용 중인 경우read_excelMarMat의 답변처럼 열을 필터링하는 기능을 사용하는 것이 확실히 더 쉽습니다.그들의 대답은 OP의 경우에 맞게 약간 변경되어야 합니다.skip_cols생략해야 합니다.

skip_cols = ['col_a', 'col_b',...,'col_zz']
df = pd.read_excel('Book1.xlsx', usecols=lambda x: x not in skip_cols)

또한 Excel 파일의 열만 읽을 수 있습니다.nrows=0및 사용Index.difference필요한 열을 추출할 수 있습니다.

cols = pd.read_excel('Book1.xlsx', nrows=0).columns
df = pd.read_excel('Book1.xlsx', usecols=cols.difference(skip_cols))

언급URL : https://stackoverflow.com/questions/49677313/skip-specific-set-of-columns-when-reading-excel-frame-pandas