본문 바로가기
  • Hello_
728x90
반응형

전체 글98

[MySQL] 중복된 값 제거하여 데이터를 호출하기 본 포스팅에서는 MySQL에서 중복된 값들을 모두 제외하고 값들을 하나씩 불러오고 개수를 세어보고자 한다. 데이터 조회 예시 테이블의 데이터는 환자 번호와 특정 열들로 이뤄진 데이터셋이며 총 357개이다. 환자 번호는 unique 한 값이지만 다른 특정 열로 인해 중복된 값도 존재한다. "select 열 from 테이블"을 통해 테이블 안에 'patient ID'라는 특정 열만 조회해보자. select 'patient ID' from dataset.sevannot_csv 실행결과는 다음과 같으며, 결과 일부를 가져왔다. 이후 count와 group by를 활용하여 'patient ID'를 기준으로 그룹별 데이터가 각 몇 개가 있는지 확인해 보자. select 'patient ID', count('pati.. 2023. 2. 7.
[Python] numpy로 csv 파일 내용 가져오기 본 포스팅에서는 np.genfromtxt를 활용하여 csv 파일 내용을 로드하고자 한다. np.genfromtxt np.genfromtxt는 아래 설명과 같이 텍스트 파일에서 데이터를 로드하는 데 사용된다. 여러 가지 인자들이 입력 가능한데 이번 포스팅에서는 많이 사용될 몇 가지 예시만 들어볼 생각이다. np.genfromtxt 활용 아래와 같이 int형태의 숫자들로 이뤄진 int.csv 파일을 활용해 보겠다. np.genfromtxt는 반환되는 데이터의 형태는 "dtype"인자에 해당 데이터 형태를 입력시켜 준면 된다. import numpy as np np.genfromtxt('./dataset/int.csv') # default float # array([111., 112., 113., 544., .. 2023. 2. 6.
[Linux] swap 메모리 확인 및 초기화하기 본 포스팅은 업무 중 갑자기 잘 작동되었던 알고리즘이 갑자기 확 느려졌을 때 해결했던 방법을 공유하고자 한다. swap memory 스왑 메모리는 실제 물리적 메모리가 아닌 시스템 응답 불가 상태를 방지하기 위해 마련해 놓은 비상용 메모리이다. 따라서 알고리즘을 구동하는 중 swap memory를 많이 사용한다면 메모리 관련 오류 발생이 내재되어 있다고 봐도 된다. 필자는 알고리즘을 새롭게 구성한 뒤 실행을 시키니 몇 분뒤 급격히 속도가 저하되는 것을 알게 되었다. 코드 특성상 규모가 큰 데이터를 로드하고 저장하는 코드라 swap 메모리 관련 문제라 파악하고 swap 메모리 사용량을 확인했다. swap 메모리 사용량 확인법은 "htop" 혹은 "free -m"을 활용하면 된다. htop에서 왼쪽 밑에 위.. 2023. 2. 6.
[Linux] conda list에서 원하는 라이브러리 찾기 본 포스팅에서는 conda list와 grep을 활용하여 찾고자 하는 라이브러리를 바로 확인해 보겠다. grep 우선 conda list는 특정 가상환경 내에 conda를 활용하여 설치한 라이브러리를 모두 확인할 수 있도록 해주는 명령어이다. 아무래도 한 개의 가상환경 내에서 오래 개발을 하다 보면 라이브러리들이 많이 쌓여 원하는 라이브러리가 있는지 혹은 해당 라이브러리의 버전은 어떻게 되는지 찾는데 시간이 오래 걸릴 수 있다. 이를 해결하기 위해 linux에서 제공하는 grep을 활용해 보자. 우선 grep은 명령어의 출력에서 특정 패턴을 찾고 검색하는 데 사용이 된다. 찾고자 하는 경로에서 "grep 패턴"을 통해 특정 패턴이 포함된 내용을 모두 찾아서 출력해 준다. grep 패턴 여기서 한 가지 더.. 2023. 2. 5.
[Python_Error] TypeError: cannot concatenate object of type '<class 'dict'>'; only Series and DataFrame objs are valid 본 포스팅은 업무 중 발생했던 오류들을 예시를 통해 어떻게 해결을 하는지 작성했다. TypeError: cannot concatenate object of type ''; only Series and DataFrame objs are valid 해당 오류는 pandas.concat을 활용할 경우 안에 인자의 리스트 요소 중 데이터프레임이 아니고 dictionary인 경우 발생한 오류이다. 오류가 발생했던 코드이며, 가장 밑에 "df = pd.concat([ct_dict,xray_df])" 라인에서 오류가 나왔다. xray_excel_path = './new_annotation.xlsx' for i in range(10): ct_dict = {} ct_dict['name'] = 'ct_{}'.format(.. 2023. 2. 4.
[Python] Pandas와 for 문으로 엑셀 데이터 밑으로 붙이기 본 포스팅에서는 "pandas.concat을 활용하여 데이터 프레임을 합치는 방법"과 "for문을 활용하여 엑셀 데이터를 위로 혹은 밑으로 계속 붙이는 방법"에 대해 설명하고자 한다. Dataframe 합치기 다음과 같이 두 가지 엑셀 파일이 있고 이 두 개를 각각 데이터프레임으로 로드하여 합쳐보자. csv 파일 혹은 xlsx 파일을 읽고 데이터프레임을 사용하는 방법은 아래 링크를 참고하면 된다. [Python] pandas로 xlsx 파일과 csv 파일 읽기 본 포스팅에서는 excel 파일의 확장자인 xlsx와 csv를 비교해 보고 padas로 각각 읽는 법에 대해 얘기하겠다. 'xlsx' vs 'csv' xlsx 파일은 이진파일로 구성이 되어 있으며 편집을 하는데 제한이 있다. 또한 baembaemb.. 2023. 2. 4.
728x90
반응형