학습/Python
-
판다스가 너무 느리다면? Polars!학습/Python 2024. 5. 7. 00:56
대용량 데이터에서는 사용 불가능한 Pandas분석가가 과제를 수행하면서 이미 집계된 데이터를 분석하는 경우가 많지만경우에 따라서는 전혀 가공되지 않은 날것의 데이터를 가공하는 경우도 종종 발생한다.요즘은 워낙 로컬 머신의 성능도 좋아지기도 했고특히 개발 환경이 클라우드에 세팅되어 있는 분석가라면 사용중인 머신의 성능을 업그레이드 하는 방식을 통해 어느정도 수준의 큰 데이터는 쉽게 처리가 가능하다.그러나 수 백 억 row 이상되는 정말 대용량의 데이터를 분석하는 경우에는 위의 방법을 적용해봐도 한계를 마주치게 되고 pandas의 read_* 함수 따위는 리소스 부족으로 MemoryError가 발생하며 실행 자체가 되지 않는다... 메모리에 이 데이터를 올릴 수 없다는 얘기..겨우겨우 데이터를 메모리에 올렸..
-
FFT를 활용한 시계열 데이터 노이즈 처리 in Python학습/Python 2023. 10. 27. 04:26
개요 이번에 수행한 데이터 분석 과제에서 Iba 센싱데이터를 전처리하는 모듈을 만들었다. 분석에 사용된 센싱데이터는 수집주기가 0.02초로 매우 짧음에도 현재(t)와 직전(t-1) 데이터의 수치에 약간의 차이가 존재했다. (정상 데이터 범위의 5%이내로 차이 발생) 이는 노후 센서로 인한 측정 오차 등의 여러 외인에 의한 변동으로 파악되었다. 해당 변동은 현장에서 컨트롤 불가능하며, 최종 분석 결과에 좋지 않은 영향을 줄 가능성이 있다고 판단하였다. 따라서 본 과제에서는 변동을 제외처리 하는 방향으로 전처리 작업을 수행하였다. 이전에 수행했던 과제에서는 센싱데이터 노이즈를 제거할 때 이동평균을 사용했지만 이번 분석과제에서는 다음과 같은 단점으로 이동평균을 사용하지 않았다. 이동평균 Moving Avera..
-
Warning 없이 Pandas Dataframe의 데이터 조작하기 - replace학습/Python 2023. 1. 12. 17:23
오늘 태블로 대시보드 용도로 데이터마트 전처리 작업을 하고 있었다. Python으로 몇 가지 레코드를 수정하는 도중에 'SettingWithCopyWarning' 경고가 발생하여 이를 간단한 방법으로 처리했다. 해당 데이터 전처리는 Dataframe에서의 String 값을 변경하고자 하는 값으로 치환하는 작업이었고, filtered dataframe의 정보를 수정하면서 원본dataframe의 값이 변경되었음을 알려주는 경고였다. Python에서 데이터 분석을 하는경우 원본 Dataframe을 filtering의 결과인 파생 Dataframe을 다루는 경우가 정말 많은데, 크게 신경안쓰고 작업하다보면 해당 경고를 자주 접하게 된다. 평소에는 크게 신경쓰지 않고 대충 넘겨버리거나 .copy로 경고를 처리하곤..