지난 포스팅에서 Pandas를 이용해 파일을 열고, 저장하는 과정에 대해 알아봤습니다. 이번에는 열린 파일에서 어떻게 데이터를 살펴볼 수 있는지 기초적인 방법에 대해 포스팅해보겠습니다. (데이터셋은 지난 포스팅 참고)
판다스로 열린 파일은 행렬 형태로 보고 접근하면 편합니다.
각종 기능들은 아래와 같습니다. 상황에 맞게 참고하여 사용하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ## 행렬 이름으로 값 보기 df.loc[4, 'education'] ## 행 이름으로 값 보기 df.loc[3,] ## 여러 행 df.loc[[3, 4, 5], ] ## 행 범위 df.loc[3:5,] ## 열 이름으로 값 보기 df.loc[:, 'education'] ## 여러 열 보기 df2 = df.loc[:, ['age', 'race', 'education']] ## 열 범위 df.loc[:, 'age':'education'] ## 여러 행렬 범위 df.loc[3:5, 'age':'education'] ## 행렬 번호로 값 보기 df.iloc[3, 3] ## 행 번호로 값 보기 df.iloc[3, ] ## 열 번호로 값 보기 df.iloc[:, 3] | cs |
Query 조건 부여
특정 컬럼에 해당하는 값의 조건에 따라 필터링할 수 있습니다. 쿼리는 아래와 같이 설정할 수 있습니다. 쿼리를 사용하면, numpy를 이용해 Array에서 특정 행을 삭제하는 과정 없이, 바로 쿼리로 필터링된 데이터를 얻을 수 있습니다. (np.drop 불필요)1234df.query('age < 20')df.query('education_num >= 14 and hours_per_week < 50')df.query('education in [" Doctorate", " Masters"]')df.query('education not in [" Doctorate", " Masters"]')cs
이와 같이 파이썬 기본 문법을 활용하여 다양하게 적용이 가능합니다.
그 외 최대최소, 평균 등의 연산은 다음과 같이 직관적으로 얻을 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ## 합계 df['age'].sum() ## 평균 df['age'].mean() ## 최소 df['age'].min() ## 최대 df['age'].max() ## 중간값 df['age'].median() ## 최빈값 df['education'].mode() ## 값의 종류 df['education'].unique() ## 값의 종류의 개수 df['education'].nunique() ## 종류별 개수 df['education'].value_counts() | cs |
다음은 데이터의 정렬입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ## 정렬 (오름차순) df.sort_values('age').head() ## 정렬 (내림차순) df.sort_values('age', ascending=False).head() ## 다중 정렬 df.sort_values(['age', 'hours_per_week']).head() ## 다중정렬 (오름/내림차순) df.sort_values(['age', 'hours_per_week'], ascending=[False, True]).head() ## 피봇 테이블 pd.pivot_table(df, columns='sex', index='race', values='capital_gain', aggfunc='mean') | cs |
'Developer > Python' 카테고리의 다른 글
[Python] 웹스크랩핑하기 - Selenium을 통한 크롬 브라우저 제어 (260) | 2019.05.26 |
---|---|
[Python] 웹스크랩핑하기 - link주소 따오기 (attrib) (254) | 2019.05.24 |
[Python] 웹 스크랩핑하기 (252) | 2019.05.24 |
[Python] 한글 인코딩 오류 났을 때 (278) | 2019.05.24 |
[Python] Pandas 라이브러리로 파일 읽기/저장하기 (261) | 2019.05.24 |
댓글