판다스?
파이썬에서 데이터 처리를 위해 존재하는 가장 인기 있는 라이브러리
일반적으로 대부분 데이터 세트는 2차원데이터입니다. 즉 행(row)과 열(column)로 구성돼있습니다.
판다스는 행과 열로 이뤄진 2차원 데이터를 효율적으로 가공/처리할 수 있는 다양하고 훌륭한 기능을 제공합니다.
2차원 데이터 핸들링을 위해서는 판다스를 사용하는 것이 좋습니다.
판다스의 주요 구성 요소 -DataFrame, Series, Index
DataFrame - Column * Row 2차원 데이터 셋
Series - 1개의 Column값으로만 구성된 1차원 데이터 셋
DataFrame 데이터 삭제
-DataFrame의 drop()
-axis : DataFrame의 row를 삭제할 때에는 axis = 0, column을 삭제할 때는 axis = 1으로 설정
-원본 DataFrame은 유지하고 드롭된 DataFrame을 새롭게 객체 변수로 받고 싶다면 inplace=False로 설정(디폴트값이 False임)
-원본 DataFrame에서 드롭된 DataFrame을 다시 원본 DataFrame 객체 변수로 할당하면 원본 DataFrame에서 드롭된 결과를 적용할 경우와 같음(단, 기존 원본 DataFrame 객체 변수는 메모리에서 추후 제거됨)
Index
판다스의 index객체는 RDBMS의 PK(Primary Key)와 유사하게 DataFrame, Series의 레코드를 고유하게 식별하는 객체입니다.
DataFrame, Series에서 Index객체만 추출하려면 DataFrame.Index 또는 series.Index 속성을 통해 가능합니다.
Series객체는 Index객체를 포함하지만 Series객체에 연산 함수를 적용할 때 Index는 연산에서 제외됩니다.
Index는 오직 식별용으로만 사용됩니다.
DataFrame 및 Series에 reset_index()메서드를 수행하면 새롭게 인덱스를 연속 숫자형으로 할당하며 기존 인덱스는 'index'라는 새로운 칼럼 명으로 추가합니다.
데이터셀렉션 및 필터링
[]- 칼럼 기반 필터링 또는 불린 인덱싱 필터링 제공
ix[], loc[], iloc[] - 명칭/ 위치 기반 인덱싱 제공
블린 인덱싱 - 조건식에 따른 필터링을 제공
데이터셀렉션 및 필터링- ix, loc, iloc
명칭(label)기반 인덱싱은 칼럼의 명칭을 기반으로 위치를 지정하는 방식입니다.
위치(position)기반 인덱싱은 0을 출발점으로 하는 가로축, 세로축 좌표 기반의 행과 열 위치를 기반으로 데이터를 지정합니다. 따라서 행, 열 위치값으로 정수가 입력됩니다.
ix - 명칭 기반과 위치 기반 인덱싱을 함께 제공
loc - 명칭 기반 인덱싱
iloc - 위치 기반 인덱싱
불린 인덱싱(Boolean indexing)
위치기반, 명칭기반 인덱싱 모두 사용할 필요 없이 조건식을 []안에 기입하여 간편하게 필터링 수행
예> titanic_boolean = titanic_df[titanic_df['age']>60]
Aggregation 함수
sum(), max(), min(), count() 등의 함수는 DAtaFrame/Series에서 집합(Aggregation)연산을 수행
DataFrame의 경우 DataFrame에서 바로 aggregation을 호출할 경우 모든 칼럼에 해당 aggregation을 적용
DataFrame Group By
DataFrame은 Group by 연산을 위해 groupby()메소드를 제공
groupby() 메소드는 by인자로 group by하려는 칼럼명을 입력 받으면 DataFrameGroupBy 객체를 반환
이렇게 반환된 DataFrameGroupBy객체에 aggregation 함수를 수행
결손데이터 처리하기
insa() : DataFrame의 insa()메소드는 주어진 칼럼값들이 NaN인지 True/False값을 반환합니다.
fillna() : Missing 데이터를 인자로 주어진 값으로 대체합니다.
apply lambda 식으로 데이터 가공
판다스는 apply함수에 lambda 식을 결합해 DataFrame이나 Series의 레코드별로 데이터를 가공하는 기능을 제공합니다. 판다스의 경우 칼럼에 일괄적으로 데이터 가공을 하는 것이 속도 면에서 더 빠르나 복접한 데이터가공이 필요할 경우 어쩔 수 없이 apply lambda를 이용합니다.
'Pandas' 카테고리의 다른 글
pd.DataFrame.describe() (0) | 2022.02.03 |
---|