ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ChatGPT로 데이터 분석 공부하기 #13 Pandas
    ChatGPT로 공부하기/데이터 분석 2024. 11. 15. 21:20

     

    Pandas는 Python에서 데이터 분석과 조작에 널리 사용되는 라이브러리로, 표 형태의 데이터(DataFrame)를 처리하는 데 매우 유용합니다. 데이터를 읽고 쓰는 기능부터, 필터링, 집계, 시각화까지 다양한 기능을 제공합니다.

    1. Pandas의 주요 데이터 구조


    Pandas는 두 가지 주요 데이터 구조를 사용합니다:

    1. Series: 1차원 데이터 구조 (1개의 열 또는 배열)
    2. DataFrame: 2차원 데이터 구조 (표 형태)

    (1) Series

    Series는 데이터와 인덱스를 가진 1차원 데이터입니다.

    import pandas as pd
    
    # Series 생성
    data = [10, 20, 30, 40]
    series = pd.Series(data, index=["a", "b", "c", "d"])
    print(series)
    
    

    출력:

    a    10
    b    20
    c    30
    d    40
    dtype: int64
    
    

    (2) DataFrame

    DataFrame은 행과 열로 구성된 2차원 데이터입니다.

    # DataFrame 생성
    data = {
        "Name": ["Alice", "Bob", "Carol"],
        "Age": [25, 30, 27],
        "City": ["New York", "Los Angeles", "Chicago"]
    }
    df = pd.DataFrame(data)
    print(df)
    
    

    출력:

         Name  Age         City
    0   Alice   25     New York
    1     Bob   30  Los Angeles
    2   Carol   27      Chicago
    
    

    2. 데이터 읽기 및 쓰기


    (1) 파일 읽기

    Pandas는 다양한 파일 형식을 읽어올 수 있습니다.

    # CSV 파일 읽기
    df = pd.read_csv("data.csv")
    
    # Excel 파일 읽기
    df = pd.read_excel("data.xlsx")
    
    

    (2) 파일 쓰기

    분석 결과를 저장할 때 사용합니다.

    # CSV 파일로 저장
    df.to_csv("output.csv", index=False)
    
    # Excel 파일로 저장
    df.to_excel("output.xlsx", index=False)
    
    

    3. 데이터 확인 및 요약


    (1) 데이터 구조 확인

    print(df.head())       # 상위 5개 행 출력
    print(df.tail())       # 하위 5개 행 출력
    print(df.info())       # 데이터 요약 정보
    print(df.describe())   # 통계 요약
    print(df.shape)        # 행, 열 개수
    print(df.columns)      # 열 이름
    
    

    4. 데이터 선택


    (1) 열 선택

    print(df["Name"])       # 단일 열 선택
    print(df[["Name", "Age"]])  # 여러 열 선택
    
    

    (2) 행 선택

    print(df.loc[0])        # 행 번호로 선택 (라벨 기반)
    print(df.iloc[0])       # 행 위치로 선택 (정수 기반)
    
    

    5. 데이터 필터링


    조건에 맞는 데이터만 선택합니다.

    # 조건을 이용한 필터링
    print(df[df["Age"] > 25])  # Age가 25보다 큰 행 선택
    
    

    6. 데이터 추가 및 삭제


    (1) 열 추가

    df["Salary"] = [50000, 60000, 70000]  # 새 열 추가
    
    

    (2) 열 삭제

    df.drop("Salary", axis=1, inplace=True)  # Salary 열 삭제
    
    

    (3) 행 삭제

    df.drop(0, axis=0, inplace=True)  # 첫 번째 행 삭제
    
    

    7. 데이터 정렬


    (1) 행 정렬

    df.sort_values(by="Age", ascending=False, inplace=True)  # Age 기준 내림차순 정렬
    
    

    (2) 열 정렬

    df.sort_index(axis=1, inplace=True)  # 열 이름 기준 정렬
    
    

    8. 데이터 집계 및 그룹화


    (1) 데이터 요약

    print(df["Age"].mean())  # 평균 계산
    print(df["Age"].sum())   # 합계 계산
    print(df["Age"].max())   # 최대값
    
    

    (2) 그룹화

    grouped = df.groupby("City")["Age"].mean()
    print(grouped)
    
    
    • City별로 Age의 평균을 계산합니다.

    9. 결측치 처리


    (1) 결측치 확인

    print(df.isnull().sum())  # 결측치 개수 확인
    
    

    (2) 결측치 처리

    df.fillna(0, inplace=True)  # 결측치를 0으로 채움
    df.dropna(inplace=True)     # 결측치가 있는 행 삭제
    
    

    10. 데이터 변환


    (1) 데이터 타입 변환

    df["Age"] = df["Age"].astype("float")  # Age를 실수형으로 변환
    
    

    (2) 데이터 값 변환

    df["Age"] = df["Age"].apply(lambda x: x * 2)  # Age 값을 2배로 변환
    
    

    11. 데이터 병합


    (1) 두 DataFrame 합치기

    df1 = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
    df2 = pd.DataFrame({"A": [5, 6], "B": [7, 8]})
    result = pd.concat([df1, df2])
    
    

    (2) 조인(merge)

    df1 = pd.DataFrame({"ID": [1, 2], "Name": ["Alice", "Bob"]})
    df2 = pd.DataFrame({"ID": [1, 2], "Salary": [50000, 60000]})
    merged = pd.merge(df1, df2, on="ID")
    
    

    12. 실무에서 Pandas의 활용 예제


    (1) 매출 데이터 분석

    sales = pd.DataFrame({
        "Month": ["Jan", "Feb", "Mar"],
        "Revenue": [10000, 15000, 20000]
    })
    print("총 매출:", sales["Revenue"].sum())  # 매출 합계
    
    

    (2) 고객 데이터 필터링

    customers = pd.DataFrame({
        "Name": ["Alice", "Bob", "Carol"],
        "Age": [25, 35, 45]
    })
    print(customers[customers["Age"] > 30])  # 30세 이상 고객
    
    

    Pandas는 데이터를 효율적으로 다루기 위한 강력한 도구입니다. 데이터를 정리하고 분석하며, 다양한 포맷으로 저장하는 작업에서 필수적으로 사용됩니다. Pandas의 기본을 잘 익히면 데이터 분석의 기초를 탄탄히 다질 수 있습니다.

     

     

     

     

     

Designed by Tistory.