[Pandas] 두 시리즈가 같은지 판단하기

반응형
    반응형

    판다스 두 시리즈가 같은지 판단하기

    두 시리즈가 동일한지 알아보기 위한 방법입니다. 데이터가 너무 크면 변화를 알아차리기 어렵거나 변화가 있다면 눈으로 확인하기보다 컴퓨터가 해주면 간편하게 할 수 있으니 최대한 활용하려 합니다.

    equals()

    equals라는 시리즈 매쏘드가 있습니다. 이 메쏘드는 두 시리즈가 동일하다면 True, 아니면 False를 반환합니다.

    import pandas as pd
    
    series1 = pd.Series([1, 2, 3, 4])
    series2 = pd.Series([1, 2, 3, 4])
    
    if series1.equals(series2):
        print("두 시리즈가 동일합니다.")
    else:
        print("두 시리즈가 동일하지 않습니다.")

    == 사용

    == 통해서도 가능합니다.

    if (series1 == series2).all():
        print("두 시리즈가 동일합니다.")
    else:
        print("두 시리즈가 동일하지 않습니다.")

     

    타입이 다르면 False를 반환할 수 있다.

    equals() 메쏘드를 쓰면 타입이 다르다는 이유로 False가 나올 수 있습니다.

    import pandas as pd
    
    series1 = pd.Series([1, 2, 3], dtype=int)
    series2 = pd.Series([1, 2, 3], dtype=float)
    
    print(series1.equals(series2))

    대신에, ==을 활용하면 True로 나옵니다.

    print((series1 == series2).all())

     

    좀 더 고급지게 하고 싶다면 assert_series_equal을 사용합니다.
    assert_series_equal을 이용하면 타입이 달라도 True가 나오게 설정할 수 있습니다. check_dtyeps=False로 놓으면 타입이 달라도 값이 같다면 같은 걸로 판단합니다.

    from pandas.testing import assert_series_equal
    
    series1 = pd.Series([1, 2, 3], dtype=int)
    series2 = pd.Series([1, 2, 3], dtype=float)
    
    try:
        assert_series_equal(series1, series2, check_dtype=False)
        print("두 시리즈가 동일합니다.")
    
    except AssertionError:
        print("두 시리즈가 동일하지 않습니다.")

     

    함께 보면 좋은 글

    [Pandas] DataFrame 특정 row 선택하는 두가지 방법(loc,iloc)

    [Pandas] series 인덱스로 값 찾기

    댓글

    Designed by JB FACTORY

    ....