openpyxl 에서 대량의 데 이 터 를 읽 는 방법-Optimized reader
1865 단어 python
본 고 는 먼저 대량의 데 이 터 를 읽 는 방법 을 소개 하고 쓰 는 방법 을 시도 하지 않 았 습 니 다.나중에 붙 일 것 이 있 으 면 참고 할 수 있 습 니 다.http://packages.python.org/openpyxl/optimized.html。
우선,우 리 는 엑셀 표를 열 어야 합 니 다.예전 의 열기 방식 과 거의 다 릅 니 다.예 를 들 어 우 리 는 haggle 이라는 xlsx 파일 을 열 어야 합 니 다.그 호출 방식 은?
wb = load_workbook(filename = 'haggle.xlsx',use_iterators=True)뒤에 use 가 하나 더 있 는 걸 발 견 했 어 요.iterators=True。
그 다음 에 우 리 는 이 워 크 시트 의 구체 적 인 워 크 시트(sheet)를 열 어야 한다.뉴스=wb.getsheet_by_name(name='Sheet 1')이때 ws 는 Iterable Worksheet 입 니 다.
다음 에 우 리 는 이 워 크 시트 ws 를 처리 할 수 있 습 니 다.우 리 는 코드 중의 한 함 수 를 중점적으로 설명 하고 먼저 코드 를 붙 여야 합 니 다.이 코드 의 기능 은 C 열 1-21282 줄 에 각각 0,1 에서 35 의 횟수 가 나타 나 는 것 을 통계 하고 다른 엑셀 에 기록 하 는 것 이다.
from openpyxl import load_workbook
from openpyxl import Workbook
dest_filename='haggle.xlsx'
new_filename='result_sf.xlsx'
wb = load_workbook(filename = dest_filename,use_iterators=True)
wb1 = Workbook()
ws=wb.get_sheet_by_name("Sheet4")
ws1=wb1.create_sheet(0, "socialfrequency")
for i in range(0,36):
count=0
for row in ws.iter_rows('C1:D21282'):#
for cell in row:#
if i==cell.internal_value:
count=count+1
else:
continue
ws1.cell(row=i,column=7).value=i
ws1.cell(row=i,column=8).value=count
wb1.save(new_filename)
우리 가 중점적으로 해석 해 야 할 코드 는 ws.iter 이다rows('C1:D21282')이 함 수 는 C 열의 1 에서 21282 줄 을 되 돌려 주 었 습 니 다.이 함 수 는 C 를 포함 하여 D 를 포함 하지 않 지만 1 과 21282 줄 을 포함 하여 하마터면 나 를 죽 일 뻔 했 습 니 다.
메모:프로그램 을 정상적으로 실행 하려 면 프로그램의 모든 주석 한 자 를 제거 해 야 합 니 다.이것 은 인 코딩 문제 와 관련 되 어 있 습 니 다.아직 제 가 완전히 알 지 못 한 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.