일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- class
- PYTHON
- nextjs
- __init__
- 구글코랩
- 캐시의 지역성
- 실수
- Next.js
- randrange
- 깃모지
- 식별연산자
- 인공신경망
- 정적 메서드
- Keras
- choice
- 메서드
- ITER
- neural network
- 추상 클래스
- 정수
- built-in function
- 메서드채이닝
- mnist
- Colab
- 맴버연산자
- self
- cache locality
- f-string
- 비공개 속성
- gitmoji
- Today
- Total
IT world
[Python] 24.01.22 Pandas 본문
Pandas
pandas란? 데이터 분석 및 조작을 위한 파이썬 라이브러리로, 행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있게 되며 표 형태의 데이터를 다루기 용이하다.
Pandas의 핵심 데이터 구조는 Series와 DataFrame이다. 이 자료 구조들은 빅데이터 분석에 있어서 높은 수준의 성능을 보여줍니다.
Series는 1차원 배열과 유사한 구조이며, 엑셀의 열을 의미한다. DataFrame은 2차원 테이블 형태의 데이터 구조이고, 엑셀에서 보는 표 형태를 의미한다. Series를 여러개 모은 딕셔너리나 데이터가 Pandas의 DataFrame이라고 생각하면 된다.
DataFrame
1. Pandas의 핵심 데이터 구조.
2. 행과 열로 이루어진 2차원 테이블 형태로 데이터를 저장.
3. 데이터 조작이 용이하고 효율적으로 데이터 분석이 가능.
- 다양한 데이터 타입 지원: 숫자, 문자열, 날짜 등 다양한 데이터 타입을 하나의 테이블에서 관리 가능.
- 데이터 조작의 용이성: 필터링, 정렬, 그룹화 등 작업이 쉽다.
- 효율적인 데이터 분석
4. DataFrame 특정 열(Columns) 선택방법
- df['column_name']을 사용하여 단일 열 선택 → 이 방법으로 선택된 열은 Series 객체
- df[['col1', 'col2']]을 사용하여 여러 열 선택 → 이 방법으로 선택된 결과는 새로은 DataFrame
- loc: 레이블 기반의 인덱싱을 통해 열 선택 → df.loc[:, 'Age'] ([행 정보, 컬럼명])
- iloc: 정수 기반의 인덱싱을 통해 열 선택 → df.iloc[:, 1] ([행 정보, 열index]
Series
1. 1차원 배열의 구조.
2. DataFrame의 각 열(Column)은 사실상 하나의 Series 객체. → 여러 Series 객체의 결합으로 이루어진 2차원 구조가 DataFrame
3. Series는 DataFrame내에서 독립적인 데이터 타입을 가질 수 있다. → 하나의 시리즈는 하나의 독립적인 데이터 타입을 가질 수 있다.
4. Series는 각 데이터 값에 고유한 인덱스를 부여.
DataFrame 기본 데이터 조회 방법
1. head(), tail()
- DataFrame의 처음 5줄, 마지막 5줄을 보여준다.
- 데이터셋의 구조를 빠르게 살펴볼 때 유용.
2. info()
- DataFrame의 요약 정보를 제공.
- 각 열의 데이터 타입, 누락된 값의 수, 메모리 사용량 등 확인.
3. describle()
- 수치형 열에 대한 통계적 요약 제공
- 평균, 표준편차, 최소값, 최대값 등을 확인
- 만약 자료가 안나온다? → 문자형!
4. inplace = True
: Pandas의 대부분의 메서드에서는 DataFrame의 복사본을 수정하고, 원본은 그대로 유지한다. 따라서 inplace=True 사용 시 복사본을 만들지 않고 원본 DataFrame을 직접 수정한다. 이는 메모리 사용량을 줄일 수 있고, 코드의 간결성을 높일 수있다. (dropna() : 결측치가 있는 행이나 열을 제거)
5. 속성
- shape : (행의 개수, 열의 개수)를 튜플로 반환.
- dtypes : 각 열의 데이터 타입 확인.
- index: 행의 인덱스(레이블) 정보를 제공.
- columns: 모든 열의 이름을 출력.
6. astype()
- DataFrame이나 Series 등 다양한 데이터 타입을 변환하는데 사용.
7. 결측치 확인(isnull())
- 해당 열의 내용중 결측치 존재 여부 판단. (True, False 반환)
Seriese 메서드
1. sum(): Series내 모든 값 합산
2. mean(): Series 값의 평균 계산
3. value_counts(): Series 내 각 값의 빈도를 계산. → 해당 값의 count, count 순으로 자동 정렬.
DataFrame 열 이름 변경
DataFrame의 열이름 변경은 데이터의 가독성과 명확성을 향상시키는 데 중요하다.
- rename
- 열 이름을 변경할 때 사용.
- columns 파라미터에 딕셔너리 형태로 새 열 이름을 지정하여 사용.
- 일괄 변경
- DataFrame의 columns 속성을 직접 설정하여 모든 열 이름을 한번에 변경 가능.
DataFrame 결합
다양한 데이터 소스에서 수집한 데이터를 하나의 DataFrame으로 통합하여 분석 효율성을 높일 수 있다.
1. concat()을 활용한 가로로 여러 DataFrame 연결(열 방향)
- 열이름이 다를 경우 ignore_index=True 옵션을 통해 열이름을 재설정할 수 있다.
2. concat()을 활용한 세로로 여러 DataFrame 연결(행 방향)
- 인덱스가 중복되지 않도록 설정하려면 ignore_index=True 옵션을 사용한다.
- 기본적으로 axis=0이 설정되어 행 방향으로 연결된다.
탐색적 데이터 분석(EDA)
EDA란? 정의, 수집한 데이터가 들어왔을 때 데이터를 탐색하고 분석하는 과정을 의미.
데이터 분석의 초기 단계로 데이터 셋의 특성, 구조, 패턴, 상관관계 등 파악하기 위해 사용되는 기술이다.
EDA를 해야하는 이유는 데이터의 분포 및 값을 검토함으로써 데이터가 표현하는 내용을 이해하고 무제를 발견하기 위함이다. 또한 미쳐 발생하지 못했을 다양한 패턴을 발견하고 이를 바탕으로 기존의 가설을 수정하거나 새로운 가설을 세울 수 있다.
각 컬럼에서 결측치의 유무와 비율을 파악하고 각 컬럼의 데이터 타입을 확인하여 적절한 타입의 변환이 필요한지 검토하며 각 컬럼에서 고유값의 개수를 파악하여 데이터의 다양성과 분포를 이해할 수 있다.
이 단계는 데이터셋에 대한 기본적인 이해를 구축하는데 도움이 되고 데이터의 구조와 특성을 파악함으로써, 후속 분석 단계에서 어떤 방향으로 분석을 진행할지 결정하는데 정보를 제공한다.
[참고]
데이터 시각화 라이브러리 : matplotlib, seaborn, plotly
'모두의 연구소(오름캠프) > AI 모델 활용 백엔드 개발 과정' 카테고리의 다른 글
[머신러닝] 24.01.24 머신러닝 실습 (0) | 2024.01.24 |
---|---|
[머신러닝] 머신러닝 개요 (0) | 2024.01.23 |
[Python] 24.01.18 기타 내용과 정규표현식 (0) | 2024.01.18 |
[Python] 24.01.17 함수 심화(2)와 모듈에 대해서 (0) | 2024.01.17 |
[Python] 24.01.16 Folium과 함수 심화 (0) | 2024.01.16 |