본문으로 바로가기

파일의 IT 블로그

프로그래밍

해당되는 글 137
  • thumbnail
    프로그래밍/C#

    [C#] 대량의 엑셀 파일 빠르게 읽어오기

    인터넷에 C#으로 엑셀 파일을 읽어와 DataGridView에 뿌리는 소스는 많으나 대부분 Com 오브젝트나 OpenXML을 이용한 방법들이고 방법도 이중 for문을 이용하는게 많아서 datagridview에 하나하나 뿌리면 속도가 끔찍합니다. 시간복잡도가 ${O(N^2)}$... 거기다가 DataGridView 자체도 엄청나게 느린데 만약 몇만라인이 되는 엑셀파일을 읽는다? 더 이상의 자세한 설명은 생략한다 아주 쉽게 대량(큰)의 엑셀파일을 읽는 방법을 알아보겠습니다. Pre-Install Nuget Package에서 ExcelDataReader와 ExcelDataReader.DataSet을 설치합니다. Source Code string fname = ""; OpenFileDialog fdlg = ne..
  • thumbnail
    프로그래밍/Python

    [Python] LSTM 미래 주가 분석 참고글

    www.youtube.com/watch?v=H6du_pfuznE LSTM을 이용해 주식 그래프의 경향성을 학습하고 다음 30일을 예측하는 코드입니다. (일단위 데이터 기준) 보통 인터넷에 LSTM을 이용해 비트코인이나 주식 그래프를 학습하는 코드들은 이전 데이터를 기준으로 하는 predict에 가까웠지만 이건 다음 50개의 경향성을 forecasting 하는 코드입니다. 아래의 영상은 간단하게 LSTM을 이해할 수 있는 참고 영상입니다. www.youtube.com/watch?v=sG_WeGbZ9A4&t=222s
  • thumbnail
    프로그래밍/Python

    JupyterLab에서 사용자 지정 단축키 Keyboard ShortCuts 설정하기

    Jupyter Notebook보다 진보한 Jupyter lab을 쓰면서 조금 불편한 점을 느꼈습니다. 원하는 키보드 단축키가 잘 작동하지 않았다는 점인데요. F2를 눌러서 파일이름을 바꾼다던가.. 현재 파일이름을 바꾼다던가 하는게 잘 안되더라구요. 인터넷에 있는 글들은 죄다 기본 단축키에 대한 정리지 설정하는 방법은 나와있지 않았습니다. 확인해보니 Jupyterlab 에서 따로 설정을 해줘야 하는것이였습니다. Jupyterlab에서 Settings -> Advanced Settings Editor로 이동해 Keyboard ShortCuts 항목을 선택해줍니다. 그러면 오른쪽 Users Preferences 부분에 뭔가 적혀있으면 공란으로 만들고 아래처럼 Json 형식으로 작성해주시면 됩니다. { "sho..
  • thumbnail
    프로그래밍/Python

    [Python] 폴더 특수문자 제거 및 HTML 태그 제거 함수

    # 경로 금지 문자 제거, HTML문자 제거 def filename_remover(string): cleaner = re.compile('|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});') #, &nbsp 등등 제거 string = re.sub(cleaner, '', string) while(string[-1] == '.'): string = string[:-1] #끝에 . 제거 ex) test... -> test non_directory_letter = ['/', ':', '*', '?', '', '|'] #경로 금지 문자열 제거 for str_ in non_directory_letter: if str_ in string: string = string.replace(str_..
  • thumbnail
    프로그래밍

    GDI와 DC 개념 정리

    GDI란(Graphics Device Interface)? 윈도우 OS를 위해 하드웨어 제조회사들이 MicroSoft에서 미리 정해놓은 사양에 따라 하드웨어를 구동할 수 있는 구동 프로그램인 Device Driver를 작성하여 배포합니다. 그렇기에 윈도우 설치시 그래픽카드와 맞는 Device Driver를 자동으로 윈도우가 설정합니다. 응용프로그램이 그래픽을 출력하고자 한다면 윈도우에 요청을 하게되고 윈도우는 Device Driver를 호출하면 Device Driver이 하드웨어를 구동시키게 됩니다. (Application -> Windows -> Device Driver -> Graphic Card) 이렇게 되면 하드웨어의 종류와 관계없이 항상 동일한 명령어를 이용하여 그래픽을 출력할 수 있어 하드웨어..
  • thumbnail
    프로그래밍/C#

    [C#] 자연스러운 정렬(natural sort) 사용하기

    C#에서 정렬을 할때 (특히 리스트뷰) 원하는 대로 정렬이 안되는 경우가 있습니다. 여기서 원하는 대로 정렬이란 윈도우 탐색기에서 우리가 이름을 클릭해 정렬을 했을때 나오는 방식을 의미합니다. 리스트뷰에서 오름차순, 내림차순 옵션을 줘도 윈도우 탐색기랑 완벽히 똑같게 정렬이 되지 않는 경우가 많습니다. 또한 드래그 드롭으로 아이템을 추가할때도 따로 처리해주지 않으면 탐색기에서 보던 순서로 아이템이 추가되는게 아닌 뒤죽박죽 추가됩니다. 보통 shlwapi.dll 를 이용해 해결 합니다만.. 이를 사용하지 않고 윈도우 탐색기 수준의 정렬을 구현된 코드가 있어서 포스팅 합니다. public static int CompareNatural(string strA, string strB) { return Compar..
  • thumbnail
    프로그래밍/Python

    [Python] 엑셀파일 인덱스 차례대로 Pandas로 읽어오기

    파이썬에서 엑셀 파일을 불러오기 위해 OpenPyxl 를 써봤으나 처리 속도가 너무 느렸습니다. 대안을 찾아보다가 pandas 가 괜찮은 성능을 보여줘서 엑셀파일을 읽는 간단한 예제를 남겨봅니다. pip install pandas 우선 엑셀파일을 읽어오기 위해선 pandas 라이브러리가 필요합니다. 다음 명령어를 입력하여 설치해줍니다. import pandas as pd try: #dtype=str -> 문자열 취급 -> 010 표시 df = pd.read_excel('example.xlsx', sheet_name = 'data', dtype=str) for i in df.index: #엑셀의 인덱스 수만큼 반복한다. name = df.loc[i, '이름'] #현재 인덱스의 이름을 가져온다 phone_n..
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.