Pandas(판다스) - DataFrame
DataFrame과 리스트, 딕셔너리, 넘파이 ndarray 상호 변환
ndarray하고 DataFrame하고의 가장 큰 차이는 바로 column명이 있는지 없는지입니다.
변환 형태 | 설명 |
리스트(list)를 DataFrame으로 변환 | df_list1 = pd.DataFrame(list, columns=col_name1) 와 같이 DataFrame생성 인자로 리스트 객체와 매핑되는 컬럼명들을 입력 |
ndarray를 DataFrame으로 변환 | df_array2 = pd.DataFrame(array2, columns = col_name2) 와 같이 DataFrame 생성 인자로 ndarray와 매핑되는 컬럼명들을 입력 |
딕셔너리(dict)를 DataFrame으로 변환 | dict = {'col' : [1:11], 'col2':[2:22], 'col3':[3,33]} df_dict = pd.DataFrame(dict) 와 같이 딕셔너리의 키(Key)로 컬럼명을 값(Value)를 리스트 형식으로 입력 |
DataFrame을 ndarray로 변환 | DataFrame 객체의 values 속성을 이용하여 ndarray 변환 |
DataFrame을 리스트로 변환 | DataFrame 객체의 values 속성을 이용하여 먼저 ndarray로 변환 후 tolist()를 이용하여 list로 변환 |
DataFrame을 딕셔너리로 변환 | DataFrame 객체의 to_dict()를 이용하여 변환 |
DataFrame으로 변환할때 column명을 쓸때는 무조건 리스트형태로 인자를 넣어주어야 합니다.
DataFrame의 column 데이터 세트 생성 및 수정
titanic dataset에서 칼럼 데이터를 추가하고 싶으면 titanic_df['컬럼명']=0을 하면 됩니다.
이때 0은 key값을 의미합니다.
DataFrame 데이터 삭제
DAataFrame의 drop()은 컬럼도 삭제할 수 있고, 로우도 삭제할 수 있습니다.
이 두개의 차이점은 axis를 통해서 구분합니다. axis=0일 때는 로우를 사제, 컬럼을 삭제할때는 axis=1로 설정합니다.
원본 DataFrame은 유지하고 드롭된 DataFrame을 새로운 객체 변수로 받고 싶다면 inplace=False로 설정합니다. (디폴트 값이 False 입니다.)
ex: titanic_drop_df = titanic_df.drop('Age_0', axis = 1, inplace = False)
단, 원본 DataFrame에 드롭된 결과를 적용할 경우에는 inplace = True로 적용시킵니다.
ex: titanic_df.drop('Age_0',axis=1,inplace=True)
그래서 보통 원본 DataFrame에서 드롭된 DataFrame을 다시 원본 DataFrame 객체 변수로 할당할 시 원본 DataFrame 에서 드롭된 결과를 적용할 경우와 같습니다. (단, 기존 원본 DataFrame 객체 변수는 메모리에서 추후 제거됩니다.)
ex: titanic_df = titanic_df.drop('Age=0',axis=1,inplace=False)