사내 연구회 기계 학습 입문(5. 계속 Python으로 프로그램을 써 보자)
소재
Python에서 Excel 파일을 조작하는 프로그램입니다.
Excel 파일을 읽고 시트의 셀 값을 표준 출력해 봅니다.
다음과 같은 Excel 파일을 "sample.xlsx"라는 파일 이름으로 준비하십시오.
파일은, 「C:\ml-intro」아래에 두는 전제로 진행합니다.
※ openpyxl이라는 Python에서 Excel 파일을 조작하기위한 라이브러리를 사용합니다.
코드를 작성해 보자.
Python 가상 환경을 활성화하고 "jupyter notebook"을 시작합니다.以下のコマンドを実行
$ cd C:\ml-intro
$ env\Scripts\activate.bat
$ jupyter notebook
노트북을 열고 라이브러리를 설치합니다.!pip install openpyxl
먼저 파일을 읽고 A1 셀의 값을 표준 출력해 봅시다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx') # ワークブック読み込み
ws = wb.active # ワークシート取得
a1 = ws['A1'].value # A1セルの値を取得
print(a1)
실행 결과는 이런 느낌입니다. (A1 셀의 값이 제대로 출력되었습니다.)
워크시트를 지정하거나 R1C1 형식으로 셀 값을 검색할 수도 있습니다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx') # ワークブック読み込み
# ws = wb.active
ws = wb['Sheet1'] # シート名を指定
# a1 = ws['A1'].value
r1c1 = ws.cell(row=2, column=1).value # 2行目、1列目のセルの値を取得
print(r1c1)
다음은, 시트상의 「셀의 값」을 모두 표준 출력해 보자.
for row in ws.rows:
print('----------------------------')
for c in row:
print(c.value)
ws.rows는 시트에서 "어떤 값이나 서식이 지정된 셀 범위"에있는 "row 개체"의 모음입니다.
샘플 Excel 파일의 경우, 4 행분의 row 객체가 모인 것입니다.
그 row 객체의 모음으로부터 1개씩 for 구문으로 1행분의 row 객체를 꺼내고 있습니다.
또한 row는 셀 모음이므로 row에서 하나씩 셀 객체를 검색하고 그 값을 표준 출력합니다.
실행 결과는 이런 느낌입니다.
프로그램을 개선합시다.
출력 결과가 이마이치이므로, 이런 느낌(↓)의 표준 출력으로 개수해 봅시다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
row_str = row_str[:-1] # 一番後ろに付いてしまう(|)は削除する
print(row_str)
실행 결과는 이런 느낌입니다.
게다가 join 메소드를 사용해 조금 코드를 깨끗이 시켜 보자.
join 메소드는, 「내장형의 1개인 str 의 메소드」라고 하는 취급답습니다.
[참고정보]
· htps : // py 쵸. ms/스 b/미 sc/욘/#욘-% 3% 81% 굳% 8% 9% 95% 5% 88% 4
· htps //w w.ぃふぇぃthpy 응. 이 m/2017/07/why-py 텐-조-이 s-st 린 굿-d. HTML
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
current_row = [] # 空のリストを準備
for cell in row:
current_row.append(str(cell.value)) # リストにセルの値を追加する
print('|'.join(current_row)) # joinメソッドの引数にリストを渡すと指定文字で連結してくれる
실행 결과는 이런 느낌입니다.
함수를 정의해 봅시다.
join 메소드를 사용하지 않고, 「myjoin」이라고 하는 함수를 자작해 보자.
import openpyxl as px
'''
myjoin関数の定義
引数:rowオブジェクト
戻り値:rowに含まれるセルの値をパイプ文字(|)で結合した文字列
'''
def myjoin(row):
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
return row_str[:-1]
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
print(myjoin(row)) # myjoin関数を使用
실행 결과는 이런 느낌입니다.
요약
오늘은, 「반복」이나 「함수의 정의」를 포인트에 프로그램을 써 보았습니다.
다음에는 마침내 기계 학습 같은 프로그램을 작성하고 싶습니다.
다음 번은, 「6. 필기의 숫자를 판정해 보자」입니다.
사내 연구회 기계 학습 입문(6. 필기의 숫자를 판정해 보자)
Reference
이 문제에 관하여(사내 연구회 기계 학습 입문(5. 계속 Python으로 프로그램을 써 보자)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masami310/items/1a9140d1dfb71041e5d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Python 가상 환경을 활성화하고 "jupyter notebook"을 시작합니다.
以下のコマンドを実行
$ cd C:\ml-intro
$ env\Scripts\activate.bat
$ jupyter notebook
노트북을 열고 라이브러리를 설치합니다.
!pip install openpyxl
먼저 파일을 읽고 A1 셀의 값을 표준 출력해 봅시다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx') # ワークブック読み込み
ws = wb.active # ワークシート取得
a1 = ws['A1'].value # A1セルの値を取得
print(a1)
실행 결과는 이런 느낌입니다. (A1 셀의 값이 제대로 출력되었습니다.)
워크시트를 지정하거나 R1C1 형식으로 셀 값을 검색할 수도 있습니다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx') # ワークブック読み込み
# ws = wb.active
ws = wb['Sheet1'] # シート名を指定
# a1 = ws['A1'].value
r1c1 = ws.cell(row=2, column=1).value # 2行目、1列目のセルの値を取得
print(r1c1)
다음은, 시트상의 「셀의 값」을 모두 표준 출력해 보자.
for row in ws.rows:
print('----------------------------')
for c in row:
print(c.value)
ws.rows는 시트에서 "어떤 값이나 서식이 지정된 셀 범위"에있는 "row 개체"의 모음입니다.
샘플 Excel 파일의 경우, 4 행분의 row 객체가 모인 것입니다.
그 row 객체의 모음으로부터 1개씩 for 구문으로 1행분의 row 객체를 꺼내고 있습니다.
또한 row는 셀 모음이므로 row에서 하나씩 셀 객체를 검색하고 그 값을 표준 출력합니다.
실행 결과는 이런 느낌입니다.
프로그램을 개선합시다.
출력 결과가 이마이치이므로, 이런 느낌(↓)의 표준 출력으로 개수해 봅시다.
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
row_str = row_str[:-1] # 一番後ろに付いてしまう(|)は削除する
print(row_str)
실행 결과는 이런 느낌입니다.
게다가 join 메소드를 사용해 조금 코드를 깨끗이 시켜 보자.
join 메소드는, 「내장형의 1개인 str 의 메소드」라고 하는 취급답습니다.
[참고정보]
· htps : // py 쵸. ms/스 b/미 sc/욘/#욘-% 3% 81% 굳% 8% 9% 95% 5% 88% 4
· htps //w w.ぃふぇぃthpy 응. 이 m/2017/07/why-py 텐-조-이 s-st 린 굿-d. HTML
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
current_row = [] # 空のリストを準備
for cell in row:
current_row.append(str(cell.value)) # リストにセルの値を追加する
print('|'.join(current_row)) # joinメソッドの引数にリストを渡すと指定文字で連結してくれる
실행 결과는 이런 느낌입니다.
함수를 정의해 봅시다.
join 메소드를 사용하지 않고, 「myjoin」이라고 하는 함수를 자작해 보자.
import openpyxl as px
'''
myjoin関数の定義
引数:rowオブジェクト
戻り値:rowに含まれるセルの値をパイプ文字(|)で結合した文字列
'''
def myjoin(row):
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
return row_str[:-1]
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
print(myjoin(row)) # myjoin関数を使用
실행 결과는 이런 느낌입니다.
요약
오늘은, 「반복」이나 「함수의 정의」를 포인트에 프로그램을 써 보았습니다.
다음에는 마침내 기계 학습 같은 프로그램을 작성하고 싶습니다.
다음 번은, 「6. 필기의 숫자를 판정해 보자」입니다.
사내 연구회 기계 학습 입문(6. 필기의 숫자를 판정해 보자)
Reference
이 문제에 관하여(사내 연구회 기계 학습 입문(5. 계속 Python으로 프로그램을 써 보자)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masami310/items/1a9140d1dfb71041e5d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
row_str = row_str[:-1] # 一番後ろに付いてしまう(|)は削除する
print(row_str)
import openpyxl as px
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
current_row = [] # 空のリストを準備
for cell in row:
current_row.append(str(cell.value)) # リストにセルの値を追加する
print('|'.join(current_row)) # joinメソッドの引数にリストを渡すと指定文字で連結してくれる
join 메소드를 사용하지 않고, 「myjoin」이라고 하는 함수를 자작해 보자.
import openpyxl as px
'''
myjoin関数の定義
引数:rowオブジェクト
戻り値:rowに含まれるセルの値をパイプ文字(|)で結合した文字列
'''
def myjoin(row):
row_str = ''
for cell in row:
row_str = row_str + str(cell.value) + '|'
return row_str[:-1]
wb = px.load_workbook('./sample.xlsx')
ws = wb['Sheet1']
for row in ws.rows:
print(myjoin(row)) # myjoin関数を使用
실행 결과는 이런 느낌입니다.
요약
오늘은, 「반복」이나 「함수의 정의」를 포인트에 프로그램을 써 보았습니다.
다음에는 마침내 기계 학습 같은 프로그램을 작성하고 싶습니다.
다음 번은, 「6. 필기의 숫자를 판정해 보자」입니다.
사내 연구회 기계 학습 입문(6. 필기의 숫자를 판정해 보자)
Reference
이 문제에 관하여(사내 연구회 기계 학습 입문(5. 계속 Python으로 프로그램을 써 보자)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masami310/items/1a9140d1dfb71041e5d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(사내 연구회 기계 학습 입문(5. 계속 Python으로 프로그램을 써 보자)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masami310/items/1a9140d1dfb71041e5d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)