본문 바로가기

반응형

pandas

(4)
[pandas] pd.DataFrame.to_csv()를 excel에서 열었을 때 한글 깨짐 Problem 문제는 심플하다. 아마 메모장이나 python, R 등에서 열었으면 아무 문제가 발생하지 않았을 텐데, 유독 excel에서만 발생한다. 원인은 엑셀에서 파일을 열 때 기본 인코딩인 cp땡땡땡 때문에 발쌩하는 문제이다. US Windows에선 CP1252 한국 windows에선 CP949 등에서 발생하는 고질적인 문제이다. CP949는 한글을 표현하기 위한 codepage이다. 우리는 codepage를 적합한 encoder/decoder를 통해서 입력/출력을 하게 된다 익숙한 codepage들을 예로 들자면 전세계 표준인 utf-8이나 컴퓨터 최초의 인코딩 방식인 ascii 등이 있을 수 있다. 이 CP949는 한글을 표현하기 위한 euc-kr의 확장 버전으로 한 문자를 2byte를 이용하여..
json data 저장시 numpy array 저장하는 법 json 형태로 데이터를 저장할 때, pandas를 사용해서 이런저런 통계처리를 해서 저장하곤 한다.이럴 때 pandas의 dataframe은 numpy의 array 기반으로 데이터를 처리한다.이 때문에 json.dump로 저장 할 때 다음과 같은 에러메시지와 마주한다. NumPy array is not JSON serializable이 때 serializable하지 못하다는게 numpy array를 지원하지 않기 때문에 얘들을 .tolist()나 int()와 같은 것을 이용해서 바꿀 수도 있다.(출처의 답변1)하지만 json의 형태가 너무 복잡한 경우 이러한 처리가 귀찮다.이러할 때는 출처의 답변2를 참고하여 Encoder을 json.dump와 같이 사용하면 좀 더 수월하게 json형태로 저장할 수 있..
pandas dataframe에 multiple condition on multiple column 판다스에서 DataFrame에서 특정 Column에 조건을 넣는 가장 쉬운 방법은 다음과 같다.df1 = df[(df.a != -1)] 뜻은 df의 a열에 조건을 넣은 경우이다. 다음의 경우와 동치이다.df1 = df[(df['a'] != -1)] 원리는 (df['a'] != -1)가 해당 조건에 맞는 index의 true, false를 ndarray형으로 리턴하는 방식이다. 따라서 다중 조건을 넣는 것은 다음과 같이 응용할 수 있다.df1 = df[(condition1) & (condition1)]파이썬의 if문에서 and를 사용하는 것과 다르다는 것에 유의하자. 이번에는 파이썬에서 특정 Column만 부르는 것을 살펴보자.사실 이미 위의 예제들에서 사용하고 있었는데 df.a 또는 df['a']와 같이..
Pandas에서 dataframe 메모리 초기화하기..! pandas에서 대용량 데이터를 ram에 올리고 계산을 하다 보면 다음과 같은 상황을 목격하게 된다.top으로 메모리 사용을 모니터링하다보면, PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3532 root 20 0 37.689g 0.026t 7624 R 88.7 95.8 33:13.73 python3 1847 root 20 0 2763276 7656 2712 S 0.7 0.0 6:02.22 docker-containe 음....? 메모리가... 넘치려 한다...! 이유는 메모리의 히스토리가 남아서... pandas는 numpy를 기반으로 만들어져있는데, df = pd.read_csv("...") df = pd.read_csv("...")이렇게 두번 불러..

반응형