파이썬으로 데이터 분석하기: Pandas 고급 기능
파이썬은 데이터 분석 작업을 위한 다양한 라이브러리를 제공하여, 효과적이고 효율적인 데이터 처리를 가능하게 합니다. 이 중에서도 Pandas는 데이터 분석에 있어 가장 많이 사용되는 라이브러리 중 하나입니다. Pandas는 데이터를 구조화하고 가공할 수 있는 강력한 기능을 제공하여, 데이터 분석 작업의 생산성을 높여주며, 다양한 형태의 데이터를 손쉽게 처리할 수 있습니다. 이번 포스팅에서는 Pandas의 고급 기능에 대해 소개하겠습니다.
1. 널 값 처리하기
실제 데이터에서는 일부 데이터가 비어 있는 경우가 있을 수 있습니다. 이러한 경우를 널(null) 값이라고 하며, 데이터 분석 작업을 할 때 이러한 널 값들을 처리해야 합니다. Pandas에서는 isnull()
함수를 사용하여 널 값 여부를 확인하고, fillna()
함수를 사용하여 널 값에 대해 적절한 값을 할당할 수 있습니다. 이를 통해 데이터의 빈 공간을 채우거나, 널 값을 가진 행을 제거할 수 있습니다.
```python import pandas as pd
데이터프레임 생성
data = {'A': [1, 2, None, 4], 'B': [5, None, 7, 8], 'C': [9, 10, 11, None]} df = pd.DataFrame(data)
널 값 확인
print(df.isnull())
널 값 채우기
dffilled = df.fillna(0) print(dffilled)
널 값을 가진 행 제거
dfdropped = df.dropna() print(dfdropped) ```
2. 그룹화하기
데이터 분석 작업에서는 데이터를 그룹화하여 통계 정보를 얻는 경우가 많습니다. Pandas에서는 groupby()
함수를 사용하여 데이터를 그룹화할 수 있습니다. 이를 통해 그룹별로 평균, 합계, 개수 등의 통계 정보를 계산할 수 있습니다.
```python import pandas as pd
데이터프레임 생성
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'], 'Age': [25, 30, 35, 40, 45], 'Score': [80, 85, 90, 95, 100]} df = pd.DataFrame(data)
이름별 평균 점수 계산
meanscorebyname = df.groupby('Name')['Score'].mean() print(meanscorebyname)
이름별 평균 나이 계산
meanagebyname = df.groupby('Name')['Age'].mean() print(meanagebyname) ```
3. 정렬하기
데이터를 분석할 때, 데이터의 특정 열을 기준으로 정렬하는 경우가 많습니다. Pandas에서는 sort_values()
함수를 사용하여 데이터를 정렬할 수 있습니다. 이를 통해 데이터를 오름차순이나 내림차순으로 정렬할 수 있습니다.
```python import pandas as pd
데이터프레임 생성
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dave', 'Eve'], 'Age': [25, 30, 35, 40, 45], 'Score': [80, 85, 90, 95, 100]} df = pd.DataFrame(data)
이름으로 오름차순 정렬
dfsorted = df.sortvalues('Name', ascending=True) print(df_sorted)
나이로 내림차순 정렬
dfsorted = df.sortvalues('Age', ascending=False) print(df_sorted) ```
4. 데이터 합치기
실제 데이터 분석 작업에서는 여러 개의 데이터를 합치는 경우가 많습니다. Pandas에서는 merge()
함수를 사용하여 데이터를 합칠 수 있습니다. 이를 통해 공통 열을 기준으로 데이터를 병합하거나, 열 이름을 기준으로 데이터를 결합할 수 있습니다.
```python import pandas as pd
데이터프레임 생성
data1 = {'Name': ['Alice', 'Bob', 'Charlie'], 'Score1': [80, 85, 90]} df1 = pd.DataFrame(data1)
data2 = {'Name': ['Charlie', 'Dave', 'Eve'], 'Score2': [95, 100, 105]} df2 = pd.DataFrame(data2)
공통 열을 기준으로 데이터 병합
dfmerged = pd.merge(df1, df2, on='Name') print(dfmerged)
열 이름을 기준으로 데이터 결합
dfconcatenated = pd.concat([df1, df2], axis=1) print(dfconcatenated) ```
Pandas는 이 외에도 많은 고급 기능을 제공하여 데이터 분석을 보다 효율적이고 간편하게 할 수 있게 도와줍니다. 이러한 기능을 잘 활용하면 데이터 분석 작업의 생산성을 높일 수 있으며, 다양한 데이터를 보다 깊이 있게 분석할 수 있습니다.
이상으로 Pandas의 고급 기능에 대해 소개하였습니다. 다음 포스팅에서는 Pandas를 활용한 데이터 시각화에 대해 알아보도록 하겠습니다.
'■ 칼퇴를 위한 파이썬 : 사례' 카테고리의 다른 글
파이썬으로 이미지 처리하기: OpenCV 사용법 (0) | 2023.07.13 |
---|---|
파이썬으로 머신러닝하기: 회귀 분석 기초 (0) | 2023.07.13 |
파이썬으로 웹 애플리케이션 개발하기: Django를 활용한 사용자 인증 구현 (0) | 2023.07.13 |
파이썬으로 데이터 시각화하기: Plotly 기초 (0) | 2023.07.13 |
파이썬으로 웹 스크래핑하기: API 사용법 (0) | 2023.07.12 |