ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pandas] Series CRUD 알아보기
    Python 2024. 2. 21. 07:30
    728x90
    반응형

     

    - 목차

     

    들어가며.

    Pandas Series 자료구조의 간단한 데이터 CRUD 에 대해서 알아보도록 하겠습니다.

     

    Create.

    먼저 Series 를 생성하는 방법에 대해서 알아보도록 하겠습니다.

    Series 는 간단히 Python List 자료구조를 통해서 생성이 가능합니다.

     

    아래 예시처럼 숫자 타입의 리스트를 준비하여 pandas 의 Series 함수를 통해서 Series 를 생성할 수 있습니다.

    Series 함수의 data 인자를 통해서 리스트를 입력하고, name 인자를 통해서 Series 의 이름을 설정할 수 있습니다.

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    sr = pd.Series(data=numeric_ls, name="numbers")
    print(sr.values.tolist())
    print(sr.name)

     

    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    numbers
    
    Process finished with exit code 0

     

     

    또한 index 를 수동으로 설정할 수도 있습니다.

    기본적으로 index 의 기본값은 0 부터 시작하는 Range 형태인데요.

    Series 의 index 속성을 조회하게 되면 아래와 같이 0 부터 시작하는 Range 값을 확인할 수 있습니다.

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    sr = pd.Series(data=numeric_ls, name="numbers")
    print(sr.index.tolist())
    [0, 1, 2, 3, 4, 5, 6, 7, 8]

     

     

    아래와 같이 index 를 매뉴얼하게 설정할 수 있습니다.

    저는 start : 0, step : 100 그리고 stop 이 800 인 Range 를 만들어 pandas 의 Series 함수에 index 입력값으로 사용하였습니다.

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    index_range = range(0, len(numeric_ls) * 100, 100)
    sr = pd.Series(data=numeric_ls, index=index_range, name="numbers")
    print(sr.index.tolist())
    [0, 100, 200, 300, 400, 500, 600, 700, 800]

     

    Update.

    Series 는 index 와 values 로 구성됩니다.

    그리고 Update 관점에서 Series 는 Dictionary 와 유사하게 동작하는데요.

    Series.index 를 Key, Series.values 를 Value 로 취급하는 Dictionary 와 유사합니다.

    따라서 아래 예시처럼 Update 를 수행할 수 있습니다.

     

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    sr = pd.Series(data=numeric_ls, name="numbers")
    
    sr[0] = 800
    sr.values[1] = 8000
    
    print(sr.values)
    [ 800 8000    3    4    5    6    7    8    9]

     

    Read.

    Series 는 Iterator 처럼 동작할 수 있습니다.

    그래서 For Loop 을 통해서 개별 데이터 단위로 조회가 가능합니다.

     

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    index_range = range(0, len(numeric_ls) * 100, 100)
    sr = pd.Series(data=numeric_ls, index=index_range, name="numbers")
    
    for num in sr:
        print(num)
    
    for index in sr.index:
        print(index)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    100
    200
    300
    400
    500
    600
    700
    800

     

     

    또한 Series 는 index 를 Key 로 가지는 Dictionary 처럼 활용할 수 있습니다.

    아래의 예시처럼 Series 의 0번 index 의 값을 조회하기 위해서 sr[0] 과 같이 활용 가능합니다.

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    index_range = range(0, len(numeric_ls) * 100, 100)
    sr = pd.Series(data=numeric_ls, index=index_range, name="numbers")
    
    value = sr[0] if 0 in sr.index else None
    print(value)

     

    만약 존재하지 않는 index 를 조회하는 상황에서는 아래와 같은 Error 를 유발할 수 있으므로

    위 예시처럼 삼항연사자를 통해서 예외처리를 하는 것이 중요합니다.

    ValueError: 1 is not in range

     

    Delete.

    파이썬의 del 명령어를 통해서 Pandas Series 의 특정 Index 와 Value 를 삭제할 수 있습니다.

    중요한 점은 index 와 value 를 같이 삭제해야합니다.

    Pandas Series 는 index 와 values 의 매칭이 중요하기 때문에 한가지만을 삭제하여 둘의 1:1 매칭이 어긋나서는 안됩니다.

     

    아래와 같이 del 명령어와 index 를 통해서 특정 index 와 value 를 삭제할 수 있습니다.

    0번 index 와 해당하는 값이 삭제됩니다.

    import pandas as pd
    
    numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    sr = pd.Series(data=numeric_ls, name="numbers")
    
    del sr[0]
    
    print(sr.index.tolist())
    print(sr.values)
    [1, 2, 3, 4, 5, 6, 7, 8]
    [2 3 4 5 6 7 8 9]

     

    반응형
Designed by Tistory.