[무턱대고 빅데이터분석기사] Pandas란? | 명령어 | 분석방법 | 활용 예시
목차
Pandas란?
Pandas는 파이썬에서 사용되는 데이터 조작과 분석을 위한 라이브러리입니다. Pandas는 효율적인 데이터 구조와 데이터 처리 기능을 제공하여 데이터를 쉽게 다룰 수 있도록 도와줍니다.
핵심 데이터 구조는 "DataFrame"입니다. DataFrame은 행과 열을 가지는 테이블 형태의 2차원 데이터 구조입니다. 이를 통해 데이터를 효율적으로 조작하고 필터링, 정렬, 그룹화, 통계 분석 등 다양한 작업을 수행할 수 있습니다.
다양한 데이터 소스와 상호작용할 수 있습니다. CSV, Excel, SQL 데이터베이스, JSON 등 다양한 형식의 데이터를 가져와 처리할 수 있습니다. 또한, 데이터를 다양한 형식으로 내보내는 것도 가능합니다.
데이터 전처리, 데이터 시각화, 통계 분석, 머신러닝 등 다양한 분야에서 널리 사용되는 도구입니다. 데이터 과학자, 데이터 엔지니어, 데이터 분석가 등 다양한 업무에서 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를 활용하여 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에 대한 시장조사 데이터를 분석할 수 있습니다. 데이터 불러오기, 데이터 점검, 데이터 전처리, 데이터 분석, 데이터 시각화, 데이터 저장 등 다양한 단계를 수행하여 원하는 결과를 얻을 수 있습니다. 아래에는 예시 데이터를 활용한 결과값입니다.
데이터 시각화
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는 데이터 프레임을 사용하여 통계적 분석을 수행하고 통계 지표를 계산하는 기능을 제공합니다.
'빅데이터 분석기사' 카테고리의 다른 글
[무턱대고 빅데이터분석기사] SciPy란? | 상관분석 | 회귀분석 (0) | 2023.06.04 |
---|---|
[빅데이터] 통계에서 보간(Interpolation)이란? | 공식 | 방법 | 외섭과의 차이 (0) | 2023.06.04 |
[무턱대고 빅데이터 분석기사] Numpy를 활용한 데이터 다루기 | 설치부터 활용까지 | pandas와의 차이 (0) | 2023.05.31 |
자연어 처리(NLP)란? | 구현 방법 | NLTK | 페이스북에서 활용 (0) | 2023.05.27 |
빅데이터 분석에서 많이 쓰는 기법 TF-IDF란? | TF-IDF 방법 | TF-IDF 예시 | 비판점 (0) | 2023.05.27 |
댓글