ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pandas] 시리즈Series, 데이터프레임DataFrame 생성하기
    직접 해보기/Python 2024. 6. 16. 01:50
    728x90
    반응형

    0️⃣  Pandas Series 생성하기

    • 판다스는 테이블 형태의 데이터를 다루는 라이브러리입니다. 그래서 헷갈릴 때는 엑셀 테이블을 생각하면 도움이 되더라구요.
    • 판다스 시리즈Series는 칼럼(열) 1개짜리 테이블이라고 생각하면 됩니다.
    • 시리즈를 생성할 때는 들어갈 data, index를 지정해주어야 합니다. name으로 이름을 정할수도 있습니다.
      참고로 Series 의 대소문자는 꼭 맞게 입력해주어야 합니다!
    • 출력해보면, 아래와 같이 index, data가 입력한 순서대로 세로로 출력됩니다.
    import pandas as pd
    
    series_1 = pd.Series(
        data = ['고양이', '강아지', '햄스터'],
        index = ['a', 'b', 'c'],
        name = '귀여운 동물 친구들'
    )


    1️⃣  Pandas DataFrame 생성 (1) - 딕셔너리 형태로 생성하기

    • 판다스 데이터프레임DataFrame은 칼럼(열) n개짜리 테이블이라고 볼 수 있습니다.
    • 데이터프레임을 생성하는 첫번째 방법은 딕셔너리를 pd.DataFrame으로 감싸는 형식으로 생성해주는 방법입니다.
    • 이때 key값들은 칼럼명이 되고, 각 value들은 칼럼별 값들로 들어가게 됩니다.
      다시말해 key-value 한 쌍이 데이터프레임에서 한 칼럼(열) 입니다.
    • 여기서 value로 들어가는 리스트들의 길이가 모두 같아야 합니다. 길이 다른 리스트가 하나라도 있으면 에러가 떠요.
    df_1 = pd.DataFrame({
        'a': [1,2,3], 
        'b': [10,20,30], 
        'c': [10,100,1000]
    })

     

     

    • 리스트 대신 pd.Series로 넣어줘도 문제없습니다.
    • 만약 Series 길이가 다른 리스트의 길이와 다르다면, 값이 들어갈 index를 지정해서 빈곳을 두고 만들 수도 있습니다.
    dict = {
        'a': [1,2,3],
        'b': pd.Series([10,20,30]),
        'c': pd.Series([10,100,1000])
    }
    df_2 = pd.DataFrame(dict)
    
    dict = {
        'a': [1,2,3],
        'b': pd.Series([20,30], index=[2,3]),
        'c': pd.Series([10], index=[1])
    }
    df_3 = pd.DataFrame(dict, index=[1,2,3])

     

     


    2️⃣  Pandas DataFrame 생성 (2) - 리스트 형태로 생성하기

    • 두번째 방법은 리스트 1~3개로 데이터프레임을 생성하는 방법입니다.
      - 1번째 리스트: 셀에 들어갈 값들을 이중리스트로 넣어야 함
      - 2번째 리스트: 인덱스(행) 이름으로 들어감
      - 3번째 리스트: 칼럼(열) 이름으로 들어감
    • 1번째 이중리스트 안의 내부리스트 각각이 하나의 행이 됩니다. 즉, 위에서 딕셔너리로 만들 때랑 반대라고 볼 수 있네요.
    • 참고로 2, 3번째 리스트를 지정하지 않아도 데이터프레임은 생성됩니다. 
    df_4 = pd.DataFrame(
        [[1,2,3], [10,20,30], [10,100,1000]],  # 들어갈 값들
        ['a','b','c'],  # 인덱스 이름
        ['x','y','z']   # 칼럼 이름
    )


     

    3️⃣  Pandas DataFrame 생성 (3) - np.array 넣어서 생성하기

    • 위 두번째 방법의 리스트 대신, numpy array가 들어가는 방법입니다.
    • 마찬가지로 np.array 하나가 데이터프레임의 행 하나로 들어갑니다.
      np.array를 리스트나 다른 데이터타입으로 변환할 필요없이 바로 데이터프레임을 만들 수 있다는 점이 좋은 부분이네요.
    import numpy as np
    
    df_6 = pd.DataFrame(
        np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
        columns=['a','b','c']
    )
    df_6


     

     

     

    728x90
    반응형