'파이썬(Python)' 카테고리의 글 목록 (3 Page)
본문 바로가기

파이썬(Python)111

Python - openpyxl 을 사용 중 값이 아닌 수식을 가져올때 해결방법 openpyxl 라이브러리를 사용하여 특정셀의 값을 가져올 수가 있습니다. 값을 가져오려고 했는데, 예기치 않게 수식을 가져오는 경우가 발생하더라구요. 예제를 통해 보겠습니다. 이렇게 임의로 10, 20 그리고 "=A1 + B1" 수식을 차례로 입력하였습니다. 코드를 위와 같이 입력하고 결과값을 출력해 보도록 하겠습니다. C1 셀은 '30'이 아닌 수식("=A1+B1")이 출력 되었습니다. openpyxl 라이브러리가 익숙하지 않은 탓에 다소 당황했습니다. 이럴때는 load_workbook 클래스에서 파일을 가져오는 옵션을 추가해주면 수식이 아닌 값을 가져올 수 있습니다. wb = load_workbook(file, data_only=True) 이런식으로 'data_only=True' 옵션을 추가로 넣어.. 2021. 10. 30.
파이썬으로 쉽고 빠르게 빈 폴더 찾아서 폴더명 바꾸기 컴퓨터를 사용해서 일을 하다보면, 많은 폴더를 사용할 때가 있습니다. 좀 더 복잡하고, 정신없이 일을 하다보면 빈 폴더도 여러개 만들어질 때도 있습니다. 이럴때 빈폴더인지 여부를 파이썬을 이용해서 쉽고, 빠르게 찾아낼 수 있습니다. 더욱이 빈폴더의 폴더명을 바꿔서 표시하는 것도 가능합니다. 파이선을 잘 활용하면, 여유있게 일을 할 수도 있겠네요. from tkinter import * import os 가져올 모듈은 'tkinter'와 'os' 모듈입니다. 사실 'os' 모듈만 있어도, 원하는 기능을 작동하기에 충분하지만, 나중에 exe 파일로 만들어서 보다 편리하게 사용하기 위해서 'tkinter'도 함께 사용했습니다. win = Tk() lbl = Label(win, text='현재 폴더에서 빈폴더를.. 2021. 10. 16.
파이썬으로 여러 폴더 빠르고 쉽게 만들기 컴퓨터로 작업을 하다 보면 수많은 폴더를 만들어야 할 때가 있습니다. 이런일이 반복된다면 파이썬으로 프로그래밍을 해서 업무를 좀 더 효율화 시킬 수 있습니다. 우선 만들 폴더의 명을 엑셀파일에 입력하도록 하겠습니다. C:D 열에 순서를 나타내는 번호와 폴더 이름을 입력했습니다. 주의할 점은 C열에 숫자는 문자입니다. 만약 숫자를 적으면 파이썬 코드에서 문자로 변경해 주어야 합니다. 수십개나 수백개를 하더라도 속도차이는 거의 없습니다. 일단 예시로 5개 폴더만 만들어 보겠습니다. from openpyxl import load_workbook from tkinter import * from tkinter import filedialog import os 모듈은 엑셀을 열어야 하니 openpyxl에서 기존 만.. 2021. 10. 14.
tkinter - 섭씨 온도를 화씨온도로 변환하는 프로그램 만들기 tkinter를 응용해서 섭씨온도(℃)를 입력하면, 화씨온도(℉)로 변환해주는 프로그램을 만들어 보도록 하겠습니다. from tkinter import * win = Tk() win.title('섭씨 온도를 화씨 온도로 변환') win.geometry('400x100') lbl_c = Label(win, text="섭씨온도", width=10) lbl_f = Label(win, text="화씨온도") lbl_c.grid(row=0, column=0) lbl_f.grid(row=1, column=0) ent_c = Entry(win, width=20) ent_f = Entry(win) ent_c.grid(row=0, column=1) ent_f.grid(row=1, column=1) btn_tr = But.. 2021. 10. 12.
tkinter - 이벤트 설정하기 지난번 포스트는 Window(창)를 만들고, Label, Button, Entry를 만들어서 배치를 해 보았습니다. 지난 포스튼 아래 링크를 참고하시기 바랍니다. tkinter - 그리드를 이용해서 레이블, 엔트리, 버튼 배치하기 이번 포스트는 이벤트를 설정하는 방법에 대해서 적어 보도록 하겠습니다. win = Tk() win.mainloop() 우선 창을 만들어 보겠습니다. 여기에 레이블과 버튼을 넣어 보도록 하겠습니다. str = ['더하기', '빼기'] win = Tk() count = StringVar(value = '0') lbl_data = Label(win, width=20, textvariable = count) lbl_data.grid(row=0, column=0, columnspan=2.. 2021. 10. 10.
tkinter - 그리드를 이용해서 레이블, 엔트리, 버튼 배치하기 지난 포스트에서 레이블, 엔트리, 버튼을 만드는 방법을 설명하였습니다. 지난 포스트는 아래 링크를 참고하시기 바랍니다. tkinter - 레이블, 엔트리, 버튼 만들기 이번 포스트는 Label, Entry, Button을 배치하는 방법을 다뤄 보도록 하겠습니다. from tkinter import * win = Tk() win.title('password') win.geometry('250x100') win.mainloop() 위와 같이 코드를 입력하여 창을 만들어 줍니다. 이렇게 창이 만들어 집니다. 보시면 아시겠지만, 비밀번호를 입력하는 창을 tkinter를 사용하여 만들려고 합니다. 우선 레이블 부터 배치 하도록 하겠습니다. lbl_name = Label(win, text='User Name') l.. 2021. 10. 8.
tkinter - 레이블, 엔트리, 버튼 만들기 지난 포스트에 이어서 tkinter 사용법에 대해서 적어 보도록 하겠습니다. 지난 포스트는 아래 링크를 참고하시기 바랍니다. tkinter 첫번째 - 윈도우 창 만들기 from tkinter import * win.mainloop() 우선 창을 만들고, from tkinter import * win = Tk() win.title('Multi Widget') win.geometry('300x200') win.mainloop() 창의 크기와 이름을 지정합니다. 이렇게 만든 창에, 'Lable'과 'Button' 그리고 텍스트를 입력할 수 있는 'Entry'를 넣어 보도록 하겠습니다. lbl = Label(win, text='label') lbl.pack() #레이블을 윈도에 적정하게 배치 레이블은 lbl이라.. 2021. 10. 6.
tkinter - 윈도우 창 만들기 파이썬으로 유용한 프로그램을 만들더라도 사용할때마다 파이참을 열어야 한다면 여간 번거러운 일이 아닐 수 있습니다. 파이썬으로 만든 코드를 실행파일로 만들더라도 최소한의 UI라도 있으면 훨씬 편하게 활용할 수 있습니다. PyQt나 Qtdesigner를 사용해도 되지만, tkinter 모듈을 사용하면 훨씬 빠르고 편리하게 원하는 프로그램을 만들 수 있습니다. 'tkinter'는 내장 모듈이기 때문에 별도로 설치할 필요는 없습니다. from tkinter import * tkinter 모듈을 불러와 보겠습니다. win = Tk() ~~ 중간에 내용 ~~~~~ win.mainloop() 이런 구조로 활용하시면 됩니다. win = Tk() win.mainloop() 이렇게만 코드를 입력하고 실행시켜 보겠습니다. .. 2021. 10. 2.
파이썬 - 문장에서 특정 문자 포함 여부(포함개수) 확인 방법 파이썬에서는 문장에서 특정 문자가 포함되었는지 여부를 쉽게 찾을 수 있습니다. 파이참에서 임의로 문장을 만들어서 'string'이라는 변수에 저장해 봅니다. 여기서 '파이썬'이라는 단어가 포함되었는지 확인해 봅시다. '파이썬'이라는 단어를 'word'라는 변수에 저장합니다. if문을 사용하여 위의 그림과 같이 코딩을 합니다. "찾고자 하는 글자 in 문장" ==>> 이렇게 하면 특정글자 포함 여부를 확인할 수 있습니다. 제대로 결과가 나왔네요. 그럼 이번에는 찾고자 하는 글자가 몇개가 포함되었는지 확인하는 코드를 작성해 보겠습니다. 위의 그림과 같이 코드를 작성해 봅니다. "문장.count(찾고자 하는 글자)" ==>> 이런 형식으로 작성하면 됩니다. 결과가 제대로 출력 된 것을 확인할 수 있습니다. 2021. 6. 20.
python pandas - 판다스 기본(컬럼 순서 바꾸기) 데이터프레임에서 컬럼 순서를 바꾸는 방법입니다. 필요 라이이브러리를 불러와서 데이터프레임을 임의로 만들었습니다. 3 X 4 형식의 데이터프레임을 만들었습니다. "df[[리스트 형태의 컬럼명]] " 형태로 컬럼의 순서를 바꿀 수 있습니다. 컬럼의 순서가 바뀐것을 확인할 수 있습니다. 다시 원래대로 순서로 바꿔보겠습니다. 다시 순서가 원래대로 바뀌었습니다. 2021. 6. 7.
python pandas - 판다스 기본(데이터프레임을 만드는 3가지 방법 ) 판다스는 여러번 봐도 항상 헷갈리네요. 특히, 기본적인 부분에서 많이 헷갈려서 구글링이 없으면 기본적인 코드도 작성할 수가 없네요. 이번 포스트는 가장 기본적인 데이이터프레임을 만드는 3가지 방법을 기록해 보겠습니다. 데이터프레임은 딕셔너리로 데이터프레임을 생성 리스트로 데이터프레임을 생성 리스트와 딕셔너리로 데이터프레임을 생성 이렇게 3가지 방법으로 생성할 수 있습니다.(아마 더 있겠지만, 저는 잘 모르겠습니다.) 우선 첫번째 방법(딕셔너리)으로 데이터프레임을 만들어 보겠습니다. 판다스 라이브러리를 불러옵니다. pd.DataFrame 함수로 {'col' : [컬럼에 있는 데이터 리스트]} 이런 형식으로 만듭니다. index=[리스트] 형태로 넣어주고, 설정을 안해도 자동으로 순차적으로 인덱스가 숫자로 .. 2021. 6. 2.
python pandas - 판다스 기본(컬럼을 인덱스로, 인덱스를 컬럼으로 변경하는 방법 ) 제 기억력이 워낙 나쁜편이라 코딩에는 적합하지 않은 것 같습니다. 다행히 요즘 기술이 발전하여 기억을 저장할 수 있는 방법이 많네요. 코딩을 한 후 몰랐거나 다음에 필요할 것 같은 부분을 블로그에 저장하니 생산성과 효율이 많이 향상되는 것 같아 너무나 좋습니다. 판다스에서는 기본적인 기능들이 잘 기억이 안 나더라구요. 그 중에 인덱스를 컬럼으로 컬럼을 인덱스로 바꾸는 간단한 방법을 기록하도록 하겠습니다. 컬럼을 인덱스로 만드는 방법입니다. set_index('col_name') 이렇게 사용하면 됩니다. 만약 mutil index(다중 인덱스)를 만들고 싶으면, set_index(['col1', 'col2']) 이렇게 사용하면 됩니다. 이번에는 인덱스를 컬럼으로 만드는 방법입니다. df['col'] = d.. 2021. 6. 1.
python pandas - 판다스 기본(특정 문자(숫자) 제외한 데이터만 가져오기 ) 판다스 데이터프레임에서 특정 문자/숫자를 제외한 데이터만 가져와야 할때가 있습니다. sort를 해야 하거나, 컬럼간에 계산을 해야 할때 문자가 나오면 에러가 나옵니다. N/A나 Null 데이타는 dropna(), 또는 dorpnull() 함수를 사용하면 되는데, 특정 문자나 숫자는 다른 방법으로 제외하고 데이터프레임을 가져올 수 있습니다. df = df[df['col'] != 0] 이런식으로 사용하면 됩니다. 생각해보면 간단한데, 막상 코딩을 하다보면 어떻게 해야할지 모를 경우가 많더라구요. 2021. 5. 31.
python pandas - 판다스 기본(to_numeric 에러 해결방법) 데이터프레임에서 작업을 하다보면 문자로 인식된 숫자데이터를 숫자로 바꿔야 할때가 있습니다. 이때 'to_numeric' 함수를 사용하면 되는데, 실제 문자가 데이터에 포함되어 있으면 에러가 발생합니다. 이때는 옵션을 errors = 'coerce'로 하면, 에러가 발생한 데이터를 N/A로 변경됩니다. 위와 같은 식으로 사용하면 됩니다. 2021. 5. 30.
python pandas - 판다스 기본(시리즈, 데이터프레임) 파이썬에서 판다스를 이용하면 활용할 곳이 많이 있습니다. 특히나 데이터분석에 특화되어 있으니, 데이터사이언스 분야에 관심을 가지고 있으시면 배우면 좋을 것 같습니다. 저는 개인적으로 기업의 재무데이터를 분석하기 위해서 공부하고 있는데, 머리가 나빠서 계속 잊어버리네요. 그래서 기록을 남기려고 합니다.(10min pandas를 참고하였습니다.) 우선 판다스는 파이참이나 주피터노트북 둘다 사용이 가능한데, 하나씩 하면서 확인해 보기에는 주피터노트북이 더 좋더라구요. pandas, numpy 라이브러리를 불러옵니다. 넘파이는 Array(배열)을 만들고, 여러 계산 기능때문에 사용하는 것 같아요.(아직 정확히 잘 모릅니다.) 우선 시리즈를 만들어 보겠습니다. 시리즈는 데이터가 한 줄인 것을 말합니다. 결과는 이.. 2021. 5. 25.
파이참에서 같은 글자(문자) 동시에 한번에 바꾸기 https://cafe.naver.com/111coding/44?tc=shared_link 파이썬을 10분만에 배우는 방법프로그램밍 언어를 공부하는 것은 외국어를 배우는 것과 상당히 흡사합니다. 우리는 대체로 초등학교 3년, 중학교 3년, 고등학교 3년 최소 9년은 영어를 배웁니다. 하지만,...cafe.naver.com 파이참에서 제공하는 기능중에 편리한 기능이 많은 것 같네요. 그 중에서 같은 글자(문자)를 동시에 수정할 수 있는 기능은 정말 유용한 것 같습니다. 위와 같은 코드에서 'row'라는 변수를 동시에 한번에 바꿔 보도록 하겠습니다. 맨 위의 'row'에 커서를 놓고, "Ctrl + Shift + Alt + j"를 누릅니다. 그러면 같은 글자들이 선택이 됩니다. 동시에 수정이 가능해집니다. .. 2021. 5. 20.
Python(파이썬) openpyxl - 엑셀 스타일 지우기(주의) 다른 사람의 엑셀파일에다 작업을 하다보면 필요없는 스타일이 만들어지게 됩니다. 이런 지저분한 스타일 때문에 엑셀파일이 느려지거나 에러가 발생하는 경우도 있습니다. 사용자가 지정한 스타일을 파이썬을 사용하여 자동으로 삭제해 보도록 하겠습니다. 스타일을 삭제하기 전 파일 모습은 아래와 같습니다. 스타일을 지우기 위한 파이썬 코드는 아래와 같습니다. 실행을 시켜보니 큰일이 났네요....ㅠㅠ 이렇게 되어 버렸어요....ㅠㅠ 스티일은 지워졌는데, 모든 적용된 양식들이 싹 다 지워졌네요.... 이렇게 되면 못쓰겠네요....ㅠㅠ 구글링을 열심히 해서 만들었는데, 비전공자의 능력은 여기까지인가 보네요.... 혹시 스타일을 지우시고 싶은 분은 아래에 VBA 로 만든 코드 참고하시기 바랍니다. 2020.11.28 - [I.. 2021. 5. 6.
Python(파이썬) openpyxl - 엑셀 글자정렬(Text Align) 파이썬의 openpyxl 모듈을 사용하여 엑셀에서 글자를 정렬해 보도록 하겠습니다. openpyxl 의 Workbook을 사용해서 새로운 파일을 만드시거나, load_workbook을 사용해서 기존 파일을 이용합니다. openpyxl.styles 에서 Alignment 를 import 합니다. 저는 새로운 워크시트를 만들어서 'wb'라는 변수에 저장하고, wb 의 활성화 된 시트를 'ws'로 저장하겠습니다. 글자정렬이 제대로 잘 되었는지 쉽게 확인해 보기 위해 행과 열너비를 크게 했습니다. 방법은 위와 같이 하시면 됩니다. 정렬을 설정할 셀의 alignment 속성에 Alignment(horizonal='ceneter', vertical='bottom') 이런식으로 설정해 주면 됩니다. horizonta.. 2021. 5. 5.
Python(파이썬) openpyxl - 글자(Font) 크기, 색깔, 스타일 지정하는 방 openpyxl 을 이용하여 엑셀의 폰트를 설정하는 방법입니다. 우선 미리 만든 엑셀파일을 로드해서 두번째 시트를 ws 변수에 담겠습니다. openpyxl.styles에서 Font 를 가져와서 폰트 설정에 사용하도록 하겠습니다. A1 셀에 'Font Test'라고 글자를 입력하겠습니다. 글꼴과 글자 색깔을 Font 함수를 사용해서 설정한 후 'f'라는 변수에 담습니다. 그리고 해당셀의 폰트 속성에 'f' 변수를 넣어주면 됩니다. 폰트가 지정된 것을 확인할 수 있습니다. 샐깔은 아래와 같이 Color 관련 사이트를 참고하시면 됩니다. www.w3schools.com/colors/colors_picker.asp HTML Color Picker Selected Color: Black Text Shadow Wh.. 2021. 5. 2.
Python(파이썬) openpyxl - 엑셀 시트(Work sheet)를 호출하는 방법 엑셀 VBA에서는 시트를 호출하기 위해서 sheets('시트명') 또는 sheets(index) 형식으로 사용하면 됩니다. 하지만, openpyxl 을 사용하면 방법이 달라집니다. 원래 VBA 매크로를 사용하시는 분이면 조금 헷갈릴 수가 있겠네요. 기존에 만든 엑셀파일을 로드하고 모든 시트명을 프린트 해 보겠습니다. 만약 시트이름을 하나만 부르고 싶을때는 어떻게 해야 할까요? 이렇게 사용하면 됩니다. 인덱스를 사용해서 호출하는 방법은 아래와 같습니다. 이건 단순히 sheet name을 불러오는 방법이라 셀에 접근해서 특정 작업을 하려면 에러가 뜹니다. VBA에 익숙한 터라 제 개인적으로는 상당히 헷갈렸습니다. 요론 식으로 쓰면 인덱스를 사용해서 엑셀 시트를 활용할 수 있습니다. 이제 반복문을 사용해서 여.. 2021. 5. 1.