본문 바로가기

DataFrame7

Keras를 이용한 다중 클래스 분류: softmax regression (Sample code) 다중 분류(Multi-class classification) 문제는 다수의 독립 변수(X)와 다수의 종속 변수(Y)가 있다면 Y의 값이 1 or 0으로 구분되는 Binary classification 대비 2개 이상의 값을 가지는 가질 수 있는 분류 문제입니다. Keras에서 다중 분류 사용하기 위해서는 Softmax활성화 함수, One Shot encoding, 비용 함수 Categorical Cross-entropy를 사용해야 합니다. 활성화 함수: SoftMax Label Encoding과 One Shot Encoding 비용 함수: categorical_crossentropy SoftMax 활성화 함수 Sigmoid 활성화 함수가 Binary Classification에서 사용한다면, Softma.. 2021. 8. 15.
Random Number를 가지는 Pandas Dataframe 생성 (좋은 code와 나쁜 code 비교) Pandas Dataframe은 보통 df.read_csv() 함수로 CSV 파일을 읽어 dataframe을 생성하지만, 성능 테스트 목적으로 random number를 가지는 dataframe 생성해야 하는 경우가 아래와 같이 가끔 있습니다. [SW 개발/Data 분석 (RDB, NoSQL, Dataframe)] - Pandas Dataframe 처리 속도 향상을 위한 병렬 처리 방법: Swifter 모듈 (사용법 쉬움)) Random number 생성은 Numpy random 또는 Built 모듈인 random 모듈 모두 사용 가능합니다. 구현 방법에 따라서 Dataframe의 생성 속도 차이는 상당히 발생합니다. 테스트 결과 10,000,000개 사이즈의 실행 속도를 비교하는 성능이 빠른 code는.. 2021. 7. 27.
Pandas Dataframe 처리 속도 향상을 위한 병렬 처리 방법: Swifter 모듈 (사용법 쉬움) Python Panadas의 Dataframe는 기본적으로 각각의 row 또는 column을 순차(squencial) 처리합니다. 데이터의 크기가 증가하면 처리 속도는 기하급수적으로 저하가 있으며, 이는 병렬 처리를 통해서 처리 속도를 향상시킬 수 있습니다. Python 병렬 처리를 지원하는 다양한 라이브러리가 있으며(참고 링크), 본 포스팅에서는 Pandas Dataframe에 특화된 Swifter 모듈 사용법과 테스트 결과를 설명합니다. Swifter 설치 Swifter는 Python package 매니저인 PyPI로 설치할 수 있습니다. Swifter 설치 시 dask, bleach 등 관련 모듈도 같이 설치됩니다. $ sudo pip3 install swifter Swifter 사용법 Swifte.. 2021. 7. 26.
Python Pandas로 Excel과 CSV 파일 입출력 방법 Pandas에서는 다양한 파일 입력을 지원하고 있습니다. 현재 Pandas는 버전 V1.3.0이며, 현 버전 기준으로 Pickling, Flat file, Clipboard, Excel, JSON, Html, Laxtex, HDF, SAS, SPASS, SQL, Google BigQuery, STATA의 파일 포맷을 지원하고 있으며, 이 중에서 일반적으로 가장 많이 사용하고 있는 Excel과 CSV 파일을 읽고 쓰는 방법을 설명합니다. Pandas로 Excel 파일 읽기: Local File과 Http URL도 지원함 Pandas에서 Excel 파일을 읽기 위해서는 Excel Reader를 설치해야 합니다. Pandas에서 기본적으로 xlrd를 사용하고 있으며 xls포맷만 지원합니다. 만일 xlsx인 엑.. 2021. 7. 21.
Panda Dataframe 날짜 기준으로 데이터 조회 및 처리하기 Dataframe 날짜 기준으로 데이터 조회 데이터 분석 시 일정 시간에 저장된 시계열 데이터를 처리하거나, 특정 기간 (예를 들어, 최근 한 달 또는 두 달간) 데이터를 기준으로 통계치를 산출하고자 할 때 날짜 기준으로 데이터를 필터링하고 처리하는 것이 필요합니다. Pandas Dataframe에서는 아래와 같이 다양한 방법으로 날짜 기준의 데이터 행의 선택 가능합니다. 직관적으로로 이해가 쉬운 것은 isin() 함수와 between() 함수이고, 다양한 조건의 데이터 (예를 들어, 매주 월요일, 매주 1일 기준, 일주일 기간)를 얻어오는 함수는 query()가 적절합니다. pandas.DataFrame.isin()은 두 날짜 사이에서DataFrame 행을 선택 pandas.Series.between(.. 2021. 6. 20.
Pandas Dataframe 여러 열과 행에 apply() 함수 적용 (Sample code 포함) Padas Dataframe apply() 함수 사용법 Panda dataframe을 엑셀의 매크로 함수처럼 각 열에 대한 연산을 하는 방법입니다. Pandas의 apply()를 사용하고 이는 가장 많이 사용하고 강력한 기능입니다. 각 항목을 요약하면 아래와 같습니다. 본 포스팅에서 설명한 내용은 Github에 test code를 올렸놨습니다. 기존의 Column 값을 연산하여 신규 Column을 추가하는 경우: df.apply(func, axis =1) axis=0은 row이고, axis=1은 column입니다. Row 값을 추가하는 경우에는 df.loc[] = df.apply(func, axis =0)으로 추가합니다. Column과 Row은 바꾸는 경우 df.transpose() 함수를 사용합니다. .. 2021. 6. 20.
Dataframe(또는 Numpy)를 JSON 출력 시 에러: TypeError: Object of type int64 is not JSON serializable Pandas dataframe 또는 Numpy를 사용해서 JSON으로 출력하는 경우 발생하는 에러입니다. Pandas dataframe의 value list는 numpy를 사용하고 있고, Numpy의 data type은 Python에서 정의하고 있는 data type보다 많기 때문에 표준 Python data type만 처리하는 Json encoder에서 에러가 발생합니다. 이러한 문제점을 수정하기 위해서 custom json encoder를 정의하거나, numpyencoder를 설치해서 사용할 수 있습니다. Custome Json encoder 코드는 GitHub 링크를 확인해주세요. 에러 메시지: File "dataframe_to_json_test.py", line 22, in test print (.. 2021. 6. 20.