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

[무턱대고 빅데이터분석기사] 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
    반응형

    댓글