Python/빅데이터

Pandas 자주 사용하는 함수

P_eli 2024. 9. 28. 16:20
728x90
반응형

Pandas는 데이터 분석을 위한 강력한 Python 라이브러리입니다. 특히 DataFrame을 이용해 데이터를 쉽게 다룰 수 있어 많은 데이터 과학자와 분석가들이 애용하고 있죠. 이번 포스팅에서는 Pandas에서 자주 사용하는 함수들을 소개하고, 각 함수가 어떻게 쓰이는지 설명해 드리겠습니다. 실무에서 자주 활용되는 팁도 포함했으니 꼭 끝까지 읽어보세요!

 

1. 데이터 불러오기와 저장하기

데이터를 불러오거나 저장하는 건 분석의 첫 단계죠. 여기서 가장 많이 쓰이는 함수는 read_csv()와 to_csv()입니다.

pd.read_csv()

CSV 파일을 읽어 DataFrame 형태로 불러옵니다. 다양한 옵션으로 데이터의 형식을 지정할 수 있는데, 보통은 파일 경로만 입력해 간단하게 사용합니다.

import pandas as pd
df = pd.read_csv('data.csv')

 

pd.to_csv()

분석한 데이터를 다시 CSV 파일로 저장하고 싶다면 to_csv()를 사용합니다. 기본적으로 인덱스까지 저장되는데, 인덱스를 제외하고 싶다면 index=False 옵션을 사용합니다.

df.to_csv('output.csv', index=False)

 

2. 데이터 확인 및 탐색

데이터를 불러왔으면, 이제 데이터가 어떻게 생겼는지, 제대로 로드됐는지 확인하는 과정이 필요하겠죠.

df.head()

데이터의 상위 5개 행을 확인합니다. 데이터의 전체적인 구조나 값의 형태를 빠르게 파악하는 데 유용합니다.

df.head()

 

df.info()

데이터의 전체적인 정보를 확인할 수 있는 함수입니다. 각 열의 데이터 타입과 결측치 여부, 행의 개수 등을 한눈에 볼 수 있어 데이터 구조를 이해하는 데 필수적입니다.

df.info()

 

df.describe()

수치형 데이터의 통계 요약을 보여줍니다. 평균, 중앙값, 표준편차 등 기본적인 통계 정보를 제공하므로, 데이터의 분포를 파악하는 데 유용합니다.

df.describe()

 

3. 데이터 선택과 필터링

데이터가 커지면 특정 행이나 열만 선택하거나, 조건에 맞는 데이터를 필터링하는 일이 중요해집니다.

df.loc[] 와 df.iloc[]

  • loc[]: 라벨(인덱스나 컬럼명) 기반으로 데이터를 선택합니다.
  • iloc[]: 정수 기반으로 데이터를 선택합니다.
# 라벨로 선택
df.loc[0:5, ['column1', 'column2']]

# 정수 인덱스로 선택
df.iloc[0:5, 0:2]

 

df.query()

SQL 스타일로 데이터를 필터링할 수 있는 함수입니다. 코드가 간결해져서 자주 사용됩니다.

df.query('column1 > 50 and column2 == "Category1"')

 

4. 데이터 변형

데이터의 구조를 바꾸거나, 불필요한 부분을 제거할 때 사용하는 함수들입니다.

df.drop()

특정 열이나 행을 제거할 때 사용하는 함수입니다. axis 옵션으로 행(axis=0)과 열(axis=1)을 지정할 수 있습니다.

# 'column1' 열을 제거
df.drop('column1', axis=1, inplace=True)

 

df.rename()

열이나 행의 이름을 바꿀 때 사용하는 함수입니다. 주로 읽기 힘든 열 이름을 다루기 쉽게 변경할 때 유용하죠.

df.rename(columns={'old_name': 'new_name'}, inplace=True)

 

df.sort_values()

특정 열을 기준으로 데이터프레임을 정렬합니다. 오름차순은 기본이며, 내림차순으로 정렬하려면 ascending=False 옵션을 사용하면 됩니다.

df.sort_values(by='column_name', ascending=False)

 

5. 결측치 처리

데이터 분석에서 빠지지 않는 작업이 결측치 처리입니다. Pandas는 결측치 확인 및 처리에 유용한 여러 함수를 제공합니다.

df.isna()

데이터프레임의 결측치를 확인하는 함수로, True와 False로 결측치 여부를 보여줍니다. 결측치가 어디에 있는지 파악하기에 좋습니다.

df.isna().sum()

 

df.fillna()

결측치를 다른 값으로 채우고 싶을 때 사용하는 함수입니다. 예를 들어, 결측치를 평균값으로 채울 수 있습니다.

df['column_name'].fillna(df['column_name'].mean(), inplace=True)

 

df.dropna()

결측치가 포함된 행이나 열을 제거할 때 사용합니다. axis=0은 행을, axis=1은 열을 제거합니다.

df.dropna(axis=0, inplace=True)

 

6. 데이터 결합

여러 개의 데이터를 하나로 합쳐야 하는 경우도 많습니다. Pandas는 이런 작업도 손쉽게 처리할 수 있게 도와줍니다.

pd.concat()

데이터프레임을 위아래(행 기준) 또는 좌우(열 기준)로 이어붙일 때 사용하는 함수입니다. 같은 형식의 데이터프레임을 합칠 때 자주 사용합니다.

pd.concat([df1, df2], axis=0)

 

pd.merge()

두 개의 데이터프레임을 특정 열을 기준으로 병합할 때 사용합니다. SQL의 JOIN과 같은 역할을 합니다.

pd.merge(df1, df2, on='key_column', how='inner')

 

7. 그룹화와 집계

데이터 분석에서는 특정 기준으로 데이터를 그룹화한 후, 통계적인 분석을 하는 경우가 많습니다.

df.groupby()

특정 열을 기준으로 데이터를 그룹화하고, 각 그룹에 대한 집계 함수를 적용할 수 있습니다.

df.groupby('column_name').sum()

 

df.agg()

여러 열에 대해 다양한 함수를 적용할 때 사용합니다. mean, sum 등과 같은 통계 함수를 동시에 사용할 수 있어 유용합니다.

df.groupby('column_name').agg({'column1': 'mean', 'column2': 'sum'})

 

마무리

Pandas는 데이터 분석을 위한 다양한 기능을 제공하는 매우 강력한 라이브러리입니다. 여기 소개한 함수들만 알아도 대부분의 데이터 처리 작업을 효율적으로 할 수 있습니다. 물론 더 깊이 있는 분석을 위해서는 추가적인 함수와 기능을 알아야겠지만, 위의 함수들만 잘 활용해도 데이터 분석의 기본적인 작업을 충분히 수행할 수 있을 거예요.

728x90
반응형