2017-10-03 4 views
1

pandas.Series.equals을 사용하여 2 개의 팬더 시리즈를 정확하게 비교할 수 있습니다. 요소가 정밀도 ε와 동일한 지 확인하는 해당 함수 또는 매개 변수가 있습니까?부동 소수점에 가까운 평등에 대한 팬더 시리즈 두 개 비교?

+2

-> ['np.allclose (S1, S2) '(https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.allclose.html) 임계 값 매개 변수를 설정하면 문서에서 설명이 잘됩니다. –

+1

@ cᴏʟᴅsᴘᴇᴇᴅ, perfect. 이 대답을하면 받아 들일 것입니다. –

답변

1

당신은 numpy.allclose를 사용할 수 있습니다

numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False) 

반환 True이 경우 배열 요소 현명한 허용 오차 내에서 동일하다.

허용 오차 값은 양수이며 일반적으로 매우 작은 수입니다. 상대 차이 (rtol * abs(b))와 절대 차이 atol 은 함께 추가되어 ab 사이의 절대 차이와 비교합니다.

numpypandas.Series 객체와 잘 작동, 그래서 당신은 그 두 가지 경우 - s1s2을 간단히 수행 할 수 있습니다

np.allclose(s1, s2, atol=...) 

atol공차 값입니다.

1

Numpy는 팬더 시리즈와 잘 어울립니다. 그러나 하나는 인덱스의 순서에주의해야한다 (또는 열 및 팬더 DataFrame 위해와 indices) 예를

를 들어

series_1 = pd.Series(data=[0,1], index=['a','b']) 
series_2 = pd.Series(data=[1,0], index=['b','a']) 
np.allclose(series_1,series_2) 

반환합니다 거짓

해결 방법은 하나 개 팬더의 인덱스를 사용하는 것입니다 시리즈

np.allclose(series_1, series_2.loc[series_1.index])