강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của habilis10161322
habilis10161322

câu hỏi đã được viết

[Làm mới] Bootcamp Nhập môn Python và Cơ bản Crawling [Từ Python, Web đến Hiểu biết Cơ bản về Dữ liệu] (Cập nhật)

Kiến thức cho Crawling: Crawling và Kỹ thuật Chuỗi Lập trình Nâng cao - Biểu thức Chính quy 3 (Cập nhật)

Excel File에서 파이썬으로 읽어온 데이터를 변경 후 원래 엑셀을 변경하는 방법을 알고 싶습니다.

Đã giải quyết

Viết

·

756

0

이번 강의 도전 과제가 주민번호 뒷자리를 * 로 바꿔서 가려보기

였는데 하기와 같이 변경하면 쥬피터 노트북으로 출력은 가능 합니다. 

import openpyxl

work_book = openpyxl.load_workbook('data_kr.xlsx')

work_sheet = work_book.active

for each_row in work_sheet.rows:

    print(re.sub('-[0-9]{7}', '-*******', each_row[1].value))

work_book.close()

저는 이왕 바꾼 데이터니깐 그걸 다시 원래 Excel에서 넣어서 수정을 하고 싶은데 잘 안되네요 

import openpyxl

work_book = openpyxl.load_workbook('data_kr.xlsx')

work_sheet = work_book.active

for each_row in work_sheet.rows:

    newdata =[re.sub('-[0-9]{7}', '-*******', each_row[1].value)]

    work_sheet.append(newdata)

    

work_book.save('new.xlsx')

work_book.close()

이렇게 하면 

이렇게까지만 되는데 원래 자리에 넣고 싶거든요...

그리고 append를 하면 적어도 A열에 덮어 질줄 알았는데  왜 완전히 다른 행에 써지는지도 모르겠습니다.

웹-크롤링python

Câu trả lời 3

1

funcoding님의 프로필 이미지
funcoding
Người chia sẻ kiến thức

아니시면, 다음 코드를 참고하셔서, 새로 엑셀 파일을 만들어서, 변경한 데이터만 넣어주시면 어떨까해요 감사합니다.

import openpyxl

def write_excel_template(filename, sheetname, listdata):

    excel_file = openpyxl.Workbook()

    excel_sheet = excel_file.active

    if sheetname != '':

        excel_sheet.title = sheetname

    

    for item in listdata:

        excel_sheet.append(item)

    excel_file.save(filename)

    excel_file.close()

0

habilis1016님의 프로필 이미지
habilis1016
Người đặt câu hỏi

강사님 질문 답변 감사합니다.

취미로 배우기 시작했는데 재밌어서 다른 것들도 다 수강하기 시작했습니다.

문과에 비전공자라 처음에는 어이가 없었는데, 하나씩 따라하다 보니 재밌네요

앞으로도 더 많은 강의 부탁 드립니다.

0

funcoding님의 프로필 이미지
funcoding
Người chia sẻ kiến thức

이미 work_sheet 에 기존 파일의 데이터가 있다보니, 그 이후에 써져서 그런것같아요.

새로 엑셀 파일을 만드는 코드를 쓰셔서, Workbook()으로 새로 생성하신 엑셀쉬트에 데이터를 넣으시면 좋을 것 같습니다.

감사합니다.

Hình ảnh hồ sơ của habilis10161322
habilis10161322

câu hỏi đã được viết

Đặt câu hỏi