본문 바로가기

전체 글102

[pandas] 데이터프레임이 먹고있는 메모리 확인하기(Out Of Memory 디버깅의 시작이 아닐까?) 간혹 빅데이터를 다루다 보면, 기기의 메모리를 먹느라 OOM 에러가 날때가 많다. 이럴 때, 나는 아래와 같은 순서로 디버깅을 한다. 1. 동일한 데이터가 중복으로 선언된 코드가 없는지 확인 2. 데이터 자체의 메모리를 확인 사실 OOM이라함은 기기의 사양이 근본적인 원인이지만, 그래도 혹시나,,, 하는 마음에 확인해본다 ㅎㅎ 아래는 데이터 프레임이 먹는 메모리를 확인하는 코드이다. #방법 1 df.info(memory_usage="deep") #방법 2 df.memory_usage(deep=True) 두개의 차이는 아래와 같다. df.info(memory_usage="deep") 메모리 정보 뿐만 아니라 null, dtype 정보도 나온다. df.memory_usage(deep=True) df 내의 열.. 2021. 8. 18.
[pandas/parquet] pandas 가이드중 parquet 관련 부분 공부 및 번역 해당 글을 만들게 된 이유: - DataFrame을 변환하다보니, 어느순간 유실되는 데이터들이 발생하더라구요. 그래서 근본부터 공부해보기로 했습니다. 아래 문서에서 parquet과 관련된 문서만 모았습니다! IO tools (text, CSV, HDF5, …) — pandas 1.3.1 documentation The pandas I/O API is a set of top level reader functions accessed like pandas.read_csv() that generally return a pandas object. The corresponding writer functions are object methods that are accessed like DataFrame.to_csv(.. 2021. 8. 3.
[리눅스/linux] pycharm "Already running"의 해결법: ps -af 옵션 리눅스 서버에서 파이참을 실행시키니 아래와 같은 에러가 떴다. Last login: Sun Jul 18 14:58:30 2021 from 10.9.2.82 hoseung2@hoseung2:~$ pycharm OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in ve rsion 9.0 and will likely be removed in a future release. Already running 이전 상황은 네트워크 에러로 인해 파이참이 강제종료된 상태였는데, 이후 파이참을 사용하고 있지 않은데도 불구하고 계속 이런 에러가 떴다. 리눅스 초보인 나는 ps를 열심히 쳤지만 파이참 관련된건 코빼기도 보이지 않았다. 그럴땐 .. 2021. 7. 18.
[찾는중]Backend TkAgg is interactive backend. Turning interactive mode on. pandas로 사이즈가 꽤 큰 json 파일을 로드했고, 제목과 같은 로그가 나왔다. 왓츠댓? 찾아보니 파이참에서 matplotlib을 사용할때 사용하는 백엔드인 것 같다. Pycharm - Importing Matplotlib I've installed Pycharm and using Anaconda 3 as my interpreter. I cannot import Matplotlib (or Seaborn). When I run 'import matplotlib.pyplot as plt' I get the following:-- import matplotlib.pyplo... stackoverflow.com 그런데 난 pandas 에서 사용한건데 왜 나온 것일까? 잘 모르겠다 난 matplotlib.... 2021. 6. 14.
[리눅스/linux] stopped job 다루기 윈도우에서 오다보니 ctrl+c, ctrl+z가 헷갈릴때가 종종있다. 과거 윈도우 유저였던 나는 가끔 실수로 되돌리기를 위해 ctrl + z를 사용하는 실수를 저지른다. 그런데 되돌리기 기능인 윈도우와 달리, 리눅스에서는 ctrl + z가 현재 진행중인 작업을 잠시 멈추게하는 역할을 한다. 이럴때 어떻게 다루면 좋을까. 일단 jobs 명령어를 통해 현재 stopped job 을 확인해보자 root@83ffc0a86438:/src# jobs [1]+ Stopped python fg 명령어를 사용하면 기존에 진행하던 작업으로 돌아갈 수 있다. root@83ffc0a86438:/src# fg python >>> 2021. 3. 14.
도커 콘테이너와 로컬에 파일 전송하기 및 내려받기 콘테이터 -> 로컬 docker cp :/path/in/container /path/for/local 로컬 -> 콘테이터 docker cp /path/for/local :/path/in/container docker cp 명령어를 사용하면 된다! 어디든 잘쓰이는 cp 명령어! 2021. 3. 13.
[pandas] ffill과 bfill ffill: forward 데이터로 뒤를 채우는 것 bfill: backward 데이터로 앞을 채우는것 2021. 1. 12.
[jupyter] .ipynb 파일 내의 변수를 다른 곳에서 import 하기(주피터 매직커맨드/ %store) 파이썬은 코드를 작성하면 코드 내의 변수가 모듈처럼 사용될 수 있습니다. 그런데, shell 단위로 코드를 실행하는 .ipynb내의 변수를 다른 파일에서 사용할 수 없을까요? 이럴때는 % store 를 사용하는 것이 편리합니다. 예시 보시죵 다른 파일에서 사용하고자 하는 리스트를 in-db value로 저장하기 a = [1] % store a >>> Stored 'a' (list) list a가 in-db value로 저장된 것을 확인할 수 있습니다. 저장 확인은 단순히 셸에 % store를 치고 실행하면 된다. % store >>> Stored variables and their in-db values: a -> [1] 저장한 데이터 다른 파일에서 호출하기 % store -r a print(a) >>>.. 2021. 1. 12.
pandas 번역: Scaling to large datasets, pandas 최적화(pandas User guide 번역/pandas 기초 입문/Pandas 간단 요약/데이터 최적화/ pandas 최적화) Scaling to large datasets pandas 는 메모리 데이터셋보다 더욱 크고 다루기 까다로운 인메모리 분석을 위한 데이터 구조들을 제공합니다(series, dataframe 등). 가끔 pandas의 함수들 중에서는 데이터 셋의 복사본을 만들어서 연산을 진행하기 때문에 다룰 수 있는 규모의 데이터들도 다루기 어려워 질 때도 있습니다. 이 문서에서는 큰 규모의 데이터셋을 다루는 몇몇 방법을 추천할 예정입니다. 해당 문서는 분석 속도를 높이고, 메모리사이즈에 맞는 데이터셋에 집중한 Enhancing performance의 내용에서 추가적으로 보완하는 문서입니다. 그렇지만 먼저, (빅데이터를 다루는데에) pandas 를 사용하지 않는 것 또한 하나의 방법이 될 수 있다는 점을 기억해주세요, p.. 2021. 1. 9.
generic programing / 제네릭 프로그래밍 제네릭 프로그래밍은 코딩시 파라미터의 타입이 나중에 지정되게 해서 재활용성을 높일 수 있는 코딩 스타일이다. 1989년 david musser와 alexander stepanov 가 고안했다고 한다. to-be-specified-later, 파라미터의 타입이 나중에 지정된다는 것이 어떤 의미일까? 제네릭은 보통 c++이나 자바에서 주로 사용되는 것 같다. 파이썬에서는 원래 동적 타이핑 언어이기 때문에 따로 필요가 없기도 하다. 하지만 제네릭 프로그래밍을 적용하면 가독성을 높이고 버그를 낮출 수 있다. 한마디로, 파이썬에서는 함수에 인자를 받을 때 인자의 type을 assert 할 수 있는 역할처럼 작동한다. 파이썬 코드로 보면 다음과 같다. from typing import TypeVar T = Type.. 2021. 1. 8.
pandas 번역: Computational tools, pandas의 연산툴 (pandas User guide 번역/pandas 기초 입문/Pandas 간단 요약) 저는 금융데이터를 주로 다루는데요, 금융 데이터는 대부분이 정량데이터로 이루어져 있다보니 이런 계산 툴들이 잘 구현되어 있습니다. 복잡한 계산도 코드 한 두줄로 간단히! 중간에 잘 번역이 안되는건 그냥 번역기 돌리고 영어 원문도 같이 첨부했습니다. 다른 유저가이드 번역 보러가기 Statistical functions Percent change Series와 DataFrame는 기간동안의 변화%를 구하기 위해 pct_change()를 제공합니다.(계산전. nan 값을 채우기 위해fill_method 를 사용합니다. In [1]: ser = pd.Series(np.random.randn(8)) In [2]: ser.pct_change() Out[2]: 0 NaN 1 -1.602976 2 4.334938 3 .. 2021. 1. 6.
pandas user guide 번역: 목차 현재 연결된 링크들은 영어고, 번역 완료된 링크들은 하나하나 연결할 예정이다. 아 다 번역할 생각을하니 벌써부터 아찔하네;; (완료)10 minutes to pandas Intro to data structures Essential basic functionality IO tools (text, CSV, HDF5, …) Indexing and selecting data MultiIndex / advanced indexing Merge, join, concatenate and compare Reshaping and pivot tables Working with text data Working with missing data Duplicate Labels Categorical data Nullable int.. 2021. 1. 6.