pandas.Series.equals
을 사용하여 2 개의 팬더 시리즈를 정확하게 비교할 수 있습니다. 요소가 정밀도 ε와 동일한 지 확인하는 해당 함수 또는 매개 변수가 있습니까?부동 소수점에 가까운 평등에 대한 팬더 시리즈 두 개 비교?
1
A
답변
1
당신은 numpy.allclose
를 사용할 수 있습니다
numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)
반환
True
이 경우 배열 요소 현명한 허용 오차 내에서 동일하다.허용 오차 값은 양수이며 일반적으로 매우 작은 수입니다. 상대 차이 (
rtol * abs(b)
)와 절대 차이atol
은 함께 추가되어a
과b
사이의 절대 차이와 비교합니다.
numpy
는 pandas.Series
객체와 잘 작동, 그래서 당신은 그 두 가지 경우 - s1
및 s2
을 간단히 수행 할 수 있습니다
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])
-> ['np.allclose (S1, S2) '(https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.allclose.html) 임계 값 매개 변수를 설정하면 문서에서 설명이 잘됩니다. –
@ cᴏʟᴅsᴘᴇᴇᴅ, perfect. 이 대답을하면 받아 들일 것입니다. –