💫 Computer Science
-
[Pandas] 메모리 줄이기 read_csv, chunk, multiprocessing💫 Computer Science/Python & AI Framework 2021. 7. 1. 00:45
pandas는 디스크말고 RAM에 데이터를 적재하는데, 이때 Contiguous Memory Allocation(연속 메모리 할당) 방식을 사용한다. 디스크 적재시(Reading from SSDs) : ~16000 nanoseconds 램 적재시(Reading from RAM) : ~100 nanoseconds **Contiguous Memory Allocation(consecutive blocks are assigned) : logical address가 연속적이면 physical address도 연속적으로 배치된다. **NonContiguous Memory Allocation(separate blocks at different locations) 멀티프로세싱과 GPU를 사용하기 전에, pd.read_..
-
Pandas vs PySpark💫 Computer Science/Python & AI Framework 2021. 6. 22. 23:41
Do you: Already know Python & Pandas? Love DataFrames? Want to work with Big Data? ➡ Then PySpark is the answer 요즘 파이썬 & 판다스 & 넘파이 조합으로 데이터 분석을 진행 중에 있다. 아직 데이터가 많지도 않고 하나의 데이터 프레임의 크기가 크지도 않아서 저 조합으로도 충분히 커버가 가능하다. 하지만 Spark를 공부해보고자 맘 먹은 이유는 추후 데이터가 많아질 경우를 대비해 수평 확장성을 고려 추후 로그 데이터 분석이 필요할 경우 여러 시각화 플랫폼과의 연결성 서버가 더 생기거나 클라우드를 이용해서 클러스터를 생성할 경우 분산 처리에 대한 대비 빅데이터 플랫폼이 파이썬 패키지를 이용한 분석보다 쾌적한지에 대한 의..
-
같은 글자의 유니코드가 다를때, 정규식이 먹지 않을때💫 Computer Science/Python & AI Framework 2021. 5. 17. 14:42
파이썬으로 텍스트 전처리를 하다가 정규식으로 한글 영어만 추출하고 있었는데, 그렇게 텍스트 클렌징 후 데이터가 None이 되는 경우가 많았다. 살펴보니깐 같은 문자라도 아스키 코드가 달랐고, 그렇다보니 정규식이 먹지 않았던 것. ord('A') # 65 chr(65) # 'A' 파이썬에서는 ord(문자) 함수로 문자의 아스키코드를 알 수 있고 chr(아스키코드) 함수로 아스키코드의 문자를 알 수 있다. 그런데, 똑같은 '한'이라는 글자가 아스키코드 값이 달랐다. 그래서 찾아보니 '유니코드 정규화(Unicode Normalization)'이 필요하다고 한다. 대표적인 예로 옴(Ω)과 오메가(Ω)는 서로 다른 문자로 취급된다. 이런 경우는 동일한 기호가 서로 사용되는 분야가 다를 때 다른 유니코드를 반환한다..
-
[Pandas] pandas 꿀팁(?)💫 Computer Science/Python & AI Framework 2021. 5. 17. 11:01
1. None은 == 로 필터링 되지 않는다. df[df["City"] == None] // X df[df["City"].isnull()] // O df[df["City"].isna()] // O pandas를 사용할 경우 결측값은 None이 아닌 np.nan 을 이용한다. 2. 결측값과 isna, isnull pandas에서 결측값(missing value)를 확인하는 메소드는 .isna()와 .isnull()이 있고 결측값일 경우 True라고 표시된다. 이 경우에도 df[df["City"] == np.nan] // X 으로 잡히지 않는다. 왜냐하면 np.nan == np.nan // False NaN 끼리는 비교 연산자가 먹히지 않기 때문이다. 그리고 isnull()과 isna()의 차이점은 '없다'..