[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