목록pandas (6)
차밍이
목차 데이터 분석을 위해 Data Preprocessing 과정을 진행하는 과정을 필수적으로 거치게됩니다. 데이터 가공을 진행하다보면 여러 Column들을 연산하여 수정하거나 새로운 데이터를 만드는 과정을 수행합니다. 이러한 과정에서 데이터량이 많아짐에 따라 연산 과정이 점점 늦어지는 현상이 발생합니다. for문 반복 혹은 itterator를 사용한 방법은 비효율적인 방법이다. 보통 apply & applymap 등을 많이 이용해서 코드를 작성합니다. 그럼에도 데이터가 많아지니, 더 빠르게 계산할 수 있는 방법은 Numpy를 최대한 활용기 + Vectorization입니다. 기본적으로 Numpy Array를 활용 단순한 연산도 Numpy Array를 활용하면 더욱 빨라집니다. 데이터프레임의 Series의..
목차 파이썬을 사용해 데이터 분석을 진행할 때, 필수적으로 사용하는 라이브러리가 있다면 판다스와 넘파이가 있다. 데이터를 많이 다루기 시작하면서 생각보다 DataFrame을 다루는 것이 느린 것 같다는 의문을 가지는 경우가 종종있다. 그래서 데이터프레임의 매소드인 value_counts와 unique에 대해서 과연 정말 빠른지 확인을 해보았다. 결론 먼저 애기하자면, 그냥 pandas사용하는 것이 맘편하다...ㅇㅅㅇ; 속도 측정은 쥬피터의 %%timeit을 사용해서 시간을 측정하였다. %timeit에 대해서 더 알아보려면 아래 링크를 참고하면 된다. [파이썬] %timeit으로 jupyter notebook에서 Cell 단위 코드 수행 시간 확인하기 [파이썬] %timeit으로 jupyter notebo..
목차 1. 데이터 불러오기 1-1. CSV 파일 데이터를 청크 크기로 읽어오기 100만개 이상이 넘어가는 row를 가진 데이터셋을 불러온다면 너무 무거워져서 속도가 매우 느려지게 됨 pandas.read_csv에서 chunksize라는 매개변수 활용 가능 로컬 메모리에 맞추기 위해 한 번에 DataFrame으로 읽어 올 행의 수를 지정 가능 df_chunk = pd.read_csv(r'../input/data.csv', chunksize=1000000) 1-2. 파일이 안불러와 질 때, 각 Column 타입 줄여서 불러오기 데이터가 너무 많아 불러오기 힘든 경우, 각 Column의 타입을 확인해서 데이터 크기를 줄여서 불러올 수 있다. def check_dtypes(file_path): print(fil..
목차 Pandas로 대용량 데이터 분석을 진행하다보면 문제가 겪는 어려움 들이 많다. pandas로 데이터를 읽는데 어려움이 있는 경우 취할 수 있는 방법이다. 1. 파일이 불러와지지 않는 경우 대략적인 과정 column 명 만 먼저 가져온다. 각 데이터 테이블에서 특정 column의 데이터만 가져온다. 해당 column의 데이터 타입을 확인한다. 해당 column의 데이터 범위를 확인하여, 데이터 타입을 줄일 수 있는 경우 타입을 변경해 줄인다. 전체 column에 대해서 진행한다. 이 후 pd.read_csv를 통해 데이터를 읽어올 때, 데이터 타입을 정해서 읽어오도록 한다. 소스코드 - 파일이 불러와지지 않는 경우 def check_dtypes(file_path:str) -> dict: print(..
데이터 구간별 범주화 pd.cut 데이터 값들을 특정 구간에 따라서 범주화할 때, 사용 범주를 나누고 라벨을 붙여서 범주형 데이터로 변환 가능 연속 데이터를 구간별로 범주화하는 함수 pd.cut 사용 방법 import pandas as pd ages = [0, 10, 15, 13, 21, 23, 37, 31, 43, 80, 61, 20, 41, 32, 100] bins = [0, 15, 25, 35, 60, 100] labels = ['어린이', '청년', '장년', '중년', '노년'] cuts = pd.cut(ages, bins, right=False, labels=labels) cuts >>> [어린이, 어린이, 청년, 어린이, 청년, ..., 노년, 청년, 중년, 장년, NaN] Length: 1..
1. Pandas 자료 구조 판다스에서 사용하는 자료 구조는 두 가지가 있습니다. Series와 DataFrame이 있습니다. Series 생성 시 index 매개 변수를 이용하여 이름을 지정할 수 있습니다. 각 index에 따른 Series 들이 모여서 DataFrame을 구성합니다. 1.1 Series import pandas as pd s = pd.Series([1, 2, 3]) s >>> 0 1 1 2 2 3 dtype: int64 1.2 Dataframe df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) df >>> 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 행과 열을 정하지 않으면 0, 1, 2 순서로 형성됩니다. 1.2.1 DataFra..