programing

Excel File vs. read_excel in Panda

i4 2023. 4. 16. 14:33
반응형

Excel File vs. read_excel in Panda

나는 판다에게 뛰어들어 실험을 하고 있다.Excel 파일에서 데이터를 읽는 경우.Excel File을 read_excel로 사용하는 것과 어떤 차이가 있는지 궁금합니다.양쪽 모두 동작하고 있는 것 같으며(예상대로 구문은 약간 다르지만), 이 문서에서는 양쪽 모두를 서포트하고 있습니다.두 경우 모두 문서에서는 "Excel 테이블을 DataFrame으로 읽기" 및 "Excel 테이블을 panda DataFrame으로 읽기"와 같은 방법을 설명합니다.(read_files Excel_file에 대한 설명)

여기 SO에 대한 답이 있는데, 둘 중 하나를 사용하여 차이를 해결합니다.또한 구글 검색에서는 이 문제를 논의하는 결과가 나오지 않았습니다.

테스트 결과, 다음과 같은 결과가 나왔습니다.

path = "test/dummydata.xlsx"
xl = pd.ExcelFile(path)
df = xl.parse("dummydata")  # sheet name

그리고.

path = "test/dummydata.xlsx" 
df = pd.io.excel.read_excel(path, sheetname=0)

후자가 나에게 줄을 남겨준다는 것 외에, 둘 사이에 차이가 있는가, 둘 중 하나를 사용해야 하는 이유가 있는가?

감사합니다!

구문 이외에 특별한 차이는 없습니다.엄밀히 말하면ExcelFile클래스이고read_excel함수입니다.어느 경우든 실제 해석은 에 의해 처리됩니다._parse_excel안에서 정의된 방법ExcelFile.

판다의 이전 버전에서는 모두 하나의 문장으로 구성되었다(댓글 제외).

return ExcelFile(path_or_buf,kind=kind).parse(sheetname=sheetname,
                                              kind=kind, **kwds)

그리고 전화하는 것 이상을 하지 않았다.ExcelFile._parse_excel.

판다의 최근 버전에서는, 이 판다에게ExcelFile오브젝트(작성되지 않은 경우 오브젝트)를 호출합니다._parse_excel직접 메서드:

if not isinstance(io, ExcelFile):
    io = ExcelFile(io, engine=engine)

return io._parse_excel(...)

갱신된(및 통합된) 파라미터 처리에서는 실제로는 다음 명령문 하나뿐입니다.

return self._parse_excel(...)

그렇기 때문에 이 문서는ExcelFile.parse자, 이제 말해라

read_excel(ExcelFile, ...)에 상당하는 파라미터에 대한 자세한 내용은 read_excel docstring을 참조하십시오.

라고 하는 또 다른 회답에 대해서는ExcelFile.parse루프가 더 빠릅니다.그것은, 실제로는, 이 루프를 작성하는지 아닌지에 달려 있습니다.ExcelFile매번 처음부터 오브젝트를 만듭니다.당신은 확실히 그 시스템을 만들 수 있다.ExcelFile한 번, 루프 밖으로, 그리고 그것을 전달한다.read_excel루프 내부:

xl = pd.ExcelFile(path)
for name in xl.sheet_names:
    df = pd.read_excel(xl, name)

이것은 에 상당합니다.

xl = pd.ExcelFile(path)
for name in xl.sheet_names:
    df = xl.parse(name)

루프가 다른 경로와 관련되어 있는 경우(즉, 하나의 워크북 내에서 여러 장의 시트를 읽는 것이 아니라 여러 개의 워크북을 읽는 경우), 새로운 워크북을 작성해야 합니다.ExcelFile각 (instance)에 한 번 두 가지 를 제시합니다.ExcelFile.parse ★★★★★★★★★★★★★★★★★」read_excel등가(및 마찬가지로 느림)가 됩니다.

ExcelFile.parse더 빠릅니다.

루프에서 데이터 프레임을 읽고 있다고 가정합니다.★★★★★★★★★★★★★★★★ ExcelFile.parse 하면 돼요Excelfile오브젝트)xl★★★★★★★★★★★★★★★★★★★★★」따라서 Excel 시트를 한 번만 로드하면 데이터 프레임을 가져올 수 있습니다. Read_Excel이 아닌 합니다.Excelfile 됩니다.따라서 기본적으로 워크북이 다시 로드될 때마다 발생합니다.워크북에 많은 시트와 수만 개의 행이 있으면 엉망입니다.

Panda가 처음 엑셀을 구현했을 때는 2단계 프로세스를 사용했지만, 그 후 read_excel이라는 1단계 프로세스를 추가했다고 생각합니다.아마 사람들이 이미 사용하고 있었기 때문에 첫 번째 것을 남겨뒀을 것이다.

언급URL : https://stackoverflow.com/questions/26474693/excelfile-vs-read-excel-in-pandas

반응형