본문 바로가기
빅데이터 분석기사

[무턱대고 빅데이터분석기사] Pandas란? | 명령어 | 분석방법 | 활용 예시

by 공불러 2023. 6. 2.
728x90
반응형

[무턱대고 빅데이터분석기사] Pandas란? | 명령어 | 분석방법 | 활용 예시

Pandas란?

Pandas란?

Pandas는 파이썬에서 사용되는 데이터 조작과 분석을 위한 라이브러리입니다. Pandas는 효율적인 데이터 구조와 데이터 처리 기능을 제공하여 데이터를 쉽게 다룰 수 있도록 도와줍니다.

핵심 데이터 구조는 "DataFrame"입니다. DataFrame은 행과 열을 가지는 테이블 형태의 2차원 데이터 구조입니다. 이를 통해 데이터를 효율적으로 조작하고 필터링, 정렬, 그룹화, 통계 분석 등 다양한 작업을 수행할 수 있습니다.

다양한 데이터 소스와 상호작용할 수 있습니다. CSV, Excel, SQL 데이터베이스, JSON 등 다양한 형식의 데이터를 가져와 처리할 수 있습니다. 또한, 데이터를 다양한 형식으로 내보내는 것도 가능합니다.

데이터 전처리, 데이터 시각화, 통계 분석, 머신러닝 등 다양한 분야에서 널리 사용되는 도구입니다. 데이터 과학자, 데이터 엔지니어, 데이터 분석가 등 다양한 업무에서 Pandas를 활용하여 데이터 작업을 더욱 효율적으로 처리하고 분석 결과를 도출합니다.

Pandas 기본 명령어

Pandas 기본 명령어

데이터 불러오기

  • pd.read_csv('파일명.csv'): CSV 파일을 읽어와 DataFrame으로 반환합니다.
  • pd.read_excel('파일명.xlsx'): Excel 파일을 읽어와 DataFrame으로 반환합니다.
  • pd.read_sql('쿼리', 연결객체): SQL 쿼리 결과를 DataFrame으로 반환합니다.
import pandas as pd

# CSV 파일 불러오기
df = pd.read_csv('data.csv')

# Excel 파일 불러오기
df = pd.read_excel('data.xlsx')

# SQL 쿼리 결과 불러오기
import sqlite3
conn = sqlite3.connect('database.db')
query = 'SELECT * FROM table_name'
df = pd.read_sql(query, conn)

데이터 확인

  • df.head(n): DataFrame의 첫 n개의 행을 확인합니다.
  • df.tail(n): DataFrame의 마지막 n개의 행을 확인합니다.
  • df.shape: DataFrame의 행과 열의 개수를 확인합니다.
  • df.info(): DataFrame의 구성과 데이터 타입에 대한 정보를 제공합니다.
# 처음 5개의 행 확인하기
df.head()

# 마지막 5개의 행 확인하기
df.tail()

# 행과 열의 개수 확인하기
df.shape

# DataFrame의 구성과 데이터 타입에 대한 정보 확인하기
df.info()

데이터 조작

  • df[column_name] 또는 df.column_name: 특정 열(column)의 데이터를 확인합니다.
  • df[column_name].value_counts(): 특정 열의 값의 빈도를 확인합니다.
  • df.loc[row_label, column_label]: 특정 행과 열에 해당하는 데이터를 선택합니다.
  • df.iloc[row_index, column_index]: 특정 행과 열에 해당하는 데이터를 선택합니다(인덱스 기반).
# 특정 열(column)의 데이터 확인하기
df['column_name']

# 특정 열의 값의 빈도 확인하기
df['column_name'].value_counts()

# 특정 행과 열에 해당하는 데이터 선택하기
df.loc[row_label, column_label]

# 특정 행과 열에 해당하는 데이터 선택하기(인덱스 기반)
df.iloc[row_index, column_index]

데이터 처리

df.drop(columns=['column_name']): 특정 열을 삭제합니다.
df.rename(columns={'old_name': 'new_name'}): 열의 이름을 변경합니다.
df.groupby('column_name').agg(func): 특정 열을 기준으로 그룹화하고 함수를 적용합니다.
df.sort_values('column_name'): 특정 열을 기준으로 데이터를 정렬합니다.

 

# 특정 열 삭제하기
df.drop(columns=['column_name'], inplace=True)

# 열의 이름 변경하기
df.rename(columns={'old_name': 'new_name'}, inplace=True)

# 특정 열을 기준으로 그룹화하고 함수 적용하기
df.groupby('column_name').agg(func)

# 특정 열을 기준으로 데이터 정렬하기
df.sort_values('column_name', inplace=True)

데이터 전처리

  • 결측치 확인하기
  • 결측치 처리하기 (예시: 평균값으로 대체)
  • 중복 데이터 확인하기
  • 중복 데이터 제거하기
  • 필요한 열 선택하기
# 결측치 확인하기
df.isnull().sum()

# 결측치 처리하기 (예시: 평균값으로 대체)
mean_value = df['column_name'].mean()
df['column_name'].fillna(mean_value, inplace=True)

# 중복 데이터 확인하기
df.duplicated().sum()

# 중복 데이터 제거하기
df.drop_duplicates(inplace=True)

# 필요한 열 선택하기
selected_columns = ['column1', 'column2', 'column3']
df = df[selected_columns]

데이터 분석

df.describe(): DataFrame의 통계적 요약 정보를 확인합니다.
df.mean(), df.median(), df.std(): 열의 평균, 중앙값, 표준편차를 계산합니다.

# DataFrame의 통계적 요약 정보 확인하기
df.describe()

# 열의 평균, 중앙값, 표준편차 계산하기
df.mean()
df.median()
df.std()

데이터 저장

df.to_csv('파일명.csv'): DataFrame을 CSV 파일로 저장합니다.
df.to_excel('파일명.xlsx'): DataFrame을 Excel 파일로 저장합니다.

# DataFrame을 CSV 파일로 저장하기
df.to_csv('data.csv', index=False)

# DataFrame을 Excel 파일로 저장하기
df.to_excel('data.xlsx', index=False)

 

Pandas로 데이터 분석하는 방법

Pandas로 데이터 분석하는 방법

다음 예시는 Pandas를 활용하여 AI에 대한 시장조사 데이터를 분석하는 과정입니다.

시장조사 파일 불러오기

import pandas as pd

# CSV 파일 불러오기
df = pd.read_csv('market_research_data.csv')

시장조사 파일 점검하기

  • 처음 5개의 행 확인하기
  • 데이터 구성과 데이터 타입에 대한 정보 확인하기
  • 통계적 요약 정보 확인하기
# 처음 5개의 행 확인하기
print(df.head())

# 데이터 구성과 데이터 타입에 대한 정보 확인하기
print(df.info())

# 통계적 요약 정보 확인하기
print(df.describe())

 

데이터 구성과 데이터 타입에 대한 정보 확인하기 결과 예시

Output:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 5 columns):
column1     1000 non-null int64
column2     1000 non-null float64
column3     1000 non-null object
column4     1000 non-null int64
column5     1000 non-null bool
dtypes: bool(1), float64(1), int64(2), object(1)
memory usage: 32.9+ KB

 

시장조사 파일 전처리하기

  • 결측치 확인하기
  • 중복 데이터 확인하기
  • 필요한 열 선택하기
# 결측치 확인하기
print(df.isnull().sum())

# 중복 데이터 확인하기
print(df.duplicated().sum())

# 필요한 열 선택하기
selected_columns = ['column1', 'column2', 'column3']
df = df[selected_columns]

데이터 분석

  • 특정 열의 값의 빈도 확인하기
  • 특정 열을 기준으로 그룹화하고 통계적인 계산 수행하기
  • 데이터 정렬하기
  •  데이터 시각화하기
# 특정 열의 값의 빈도 확인하기
value_counts = df['column_name'].value_counts()
print(value_counts)

# 특정 열을 기준으로 그룹화하고 통계적인 계산 수행하기
grouped_df = df.groupby('column_name').agg({'column1': 'mean', 'column2': 'sum'})
print(grouped_df)

# 데이터 정렬하기
sorted_df = df.sort_values('column_name', ascending=False)
print(sorted_df)

# 데이터 시각화하기
import matplotlib.pyplot as plt

df['column_name'].plot(kind='hist', bins=10)
plt.xlabel('X Label')
plt.ylabel('Y Label')
plt.title('Histogram of column_name')
plt.show()

특정 열의 값의 빈도 확인하기 결과값

Output:
Value 1: 500
Value 2: 300
Value 3: 200

특정 열을 기준으로 그룹화하고 통계적인 계산 수행하기 결과값

Output:
           column1  column2_sum
Value 1     25.3      1000.5
Value 2     40.1      500.2
Value 3     15.8      300.7

 

데이터 저장

# 분석 결과를 새로운 CSV 파일로 저장하기
df.to_csv('analyzed_data.csv', index=False)

 

위의 예시 코드를 참고하여 AI에 대한 시장조사 데이터를 분석할 수 있습니다. 데이터 불러오기, 데이터 점검, 데이터 전처리, 데이터 분석, 데이터 시각화, 데이터 저장 등 다양한 단계를 수행하여 원하는 결과를 얻을 수 있습니다. 아래에는 예시 데이터를 활용한 결과값입니다.

 

데이터 시각화

pandas데이터 시각화

import matplotlib.pyplot as plt

# 선 그래프
df.plot(x='column1', y='column2', kind='line')

# 막대 그래프
df['column_name'].plot(kind='bar')

# 히스토그램
df['column_name'].plot(kind='hist')

# 산점도
df.plot(x='column1', y='column2', kind='scatter')

plt.xlabel('X Label')
plt.ylabel('Y Label')
plt.title('Title')
plt.legend()
plt.show()

 

(히스토그램 그래프가 시각화됩니다)

이와 같은 방식으로 데이터를 분석하고 결과를 확인할 수 있습니다. 실제 데이터와 분석 목표에 따라 코드를 수정하고 추가 작업을 수행하면 됩니다.

머신 러닝 활용 예시

Pandas는 데이터를 불러오고 전처리하여 머신러닝 모델에 적합한 형태로 준비하는 데 유용한 도구니다. 데이터 탐색, 결측치 처리, 특성 선택, 데이터 분할 등 다양한 작업을 수행할 수 있으며, 이를 통해 머신러닝 모델의 성능을 향상시킬 수 있습니다.

 

데이터 전처리: 머신러닝 모델을 학습시키기 전에 데이터를 전처리해야 합니다. 이 과정에서 Pandas는 데이터를 로드하고 정제하며, 결측치 처리, 이상치 탐지, 데이터 변환 등 다양한 전처리 작업을 수행할 수 있는 강력한 도구입니다.

데이터 탐색과 시각화: 데이터를 이해하고 탐색하는 과정은 머신러닝 모델을 구축하는 데 매우 중요합니다. Pandas는 데이터의 구조를 파악하고 통계적 요약 정보를 제공하며, 데이터를 시각화하여 패턴과 관계를 시각적으로 이해할 수 있는 기능을 제공합니다.

데이터 조작: Pandas는 데이터를 조작하고 변환하는 다양한 기능을 제공합니다. 데이터의 특정 부분을 선택하거나 필터링하거나, 열을 추가 또는 제거하거나, 특성 스케일링을 수행하는 등의 작업을 손쉽게 수행할 수 있습니다.

데이터 통합: 머신러닝 작업에서는 여러 개의 데이터 소스를 통합해야 할 때가 있습니다. Pandas는 다른 데이터 프레임을 병합하거나 연결하는 등의 데이터 통합 작업을 수행할 수 있습니다.

데이터 인코딩: 범주형 데이터를 수치형 데이터로 변환하는 인코딩 작업은 머신러닝 모델에 데이터를 입력하기 위해 필요합니다. Pandas는 원-핫 인코딩, 레이블 인코딩 등 다양한 인코딩 방법을 제공하여 범주형 데이터를 처리할 수 있습니다.

데이터 분할과 검증: 머신러닝 모델을 학습시키기 위해서는 데이터를 학습용과 테스트용으로 나누어야 합니다. Pandas는 데이터를 쉽게 분할하고 분할된 데이터의 일관성을 유지하는 데 도움을 줍니다.

통계 분석: 머신러닝 작업에서 데이터의 통계적 분석은 모델 개발 및 성능 평가에 중요한 역할을 합니다. Pandas는 데이터 프레임을 사용하여 통계적 분석을 수행하고 통계 지표를 계산하는 기능을 제공합니다.


728x90
반응형

댓글