저는 파이썬과이 커뮤니티에 상당히 익숙합니다. 그래서 아마추어적인 시도를 용서해주십시오. 아마도 내게 혼란 스러울 정도의 혼란을 설명 할 수 있습니다. 어쨌든 ...xs를 통해 분할하는 동안 multiIndex DataFrame에서 any() 및 all()을 사용합니다. 이상한 동작입니까?
"데이터"라는 데이터 프레임이 있습니다. 그것은 "날짜"와 "방귀"로 구성된 2 단계로 multiIndexed입니다.
"integrated_daily_difference"라는 단일 열이 있습니다. 당신은 "방귀"를 가정 할 수
유형이다 : 'pandas.core.index.Index'를 통해 만들어진 : farts = data.index.levels[1]
가 지금은 임의의 나의 dataframe의 조각보기를 가지고 싶습니다 상상 할 수 있습니다 방귀의 인덱스 값 : 즉, 방귀 [1]
나 :
data.xs(farts[1], level = 1)
컴퓨터 :
integrated_daily_difference
date
2015-05-21 00:00:00+00:00 0.000000
2015-05-22 00:00:00+00:00 0.000000
2015-05-26 00:00:00+00:00 -0.024497
2015-05-27 00:00:00+00:00 -0.051144
2015-05-28 00:00:00+00:00 -0.079841
2015-05-29 00:00:00+00:00 -0.106666
2015-06-01 00:00:00+00:00 -0.131245
2015-06-02 00:00:00+00:00 -0.157428
2015-06-03 00:00:00+00:00 -0.184057
2015-06-04 00:00:00+00:00 -0.209755
2015-06-05 00:00:00+00:00 -0.234588
2015-06-08 00:00:00+00:00 -0.262365
2015-06-09 00:00:00+00:00 -0.291890
2015-06-10 00:00:00+00:00 -0.320943
2015-06-11 00:00:00+00:00 -0.352627
2015-06-12 00:00:00+00:00 -0.381425
2015-06-15 00:00:00+00:00 -0.404055
나 :
data.xs(farts[1], level = 1) < 0
컴퓨터 :
integrated_daily_difference
date
2015-05-21 00:00:00+00:00 False
2015-05-22 00:00:00+00:00 False
2015-05-26 00:00:00+00:00 True
2015-05-27 00:00:00+00:00 True
2015-05-28 00:00:00+00:00 True
2015-05-29 00:00:00+00:00 True
2015-06-01 00:00:00+00:00 True
2015-06-02 00:00:00+00:00 True
2015-06-03 00:00:00+00:00 True
2015-06-04 00:00:00+00:00 True
2015-06-05 00:00:00+00:00 True
2015-06-08 00:00:00+00:00 True
2015-06-09 00:00:00+00:00 True
2015-06-10 00:00:00+00:00 True
2015-06-11 00:00:00+00:00 True
2015-06-12 00:00:00+00:00 True
2015-06-15 00:00:00+00:00 True
나는이 결과가 사실 그래서 값이 내 슬라이스 dataframe 내에서 어떤 위치에 존재하는지 여부를 반환 가정?
나 :
data.xs(farts[1], level = 1).any()
컴퓨터 :
integrated_daily_difference True
dtype: bool
OK,이 모든 종류의 의미가 있습니다. 이제 이상한 물건에 대한 ..
나 :
data.xs(farts[1], level = 1).any() < 0
컴퓨터 :
integrated_daily_difference False
dtype: bool
허 ....?
나 :
data.xs(farts[1], level = 1).any(axis = 0) < 0
컴퓨터 :
integrated_daily_difference False
dtype: bool
나 :
data.xs(farts[1], level = 1).any(axis = 1) < 0
컴퓨터 :
date
2015-05-21 00:00:00+00:00 False
2015-05-22 00:00:00+00:00 False
2015-05-26 00:00:00+00:00 False
2015-05-27 00:00:00+00:00 False
2015-05-28 00:00:00+00:00 False
2015-05-29 00:00:00+00:00 False
2015-06-01 00:00:00+00:00 False
2015-06-02 00:00:00+00:00 False
2015-06-03 00:00:00+00:00 False
2015-06-04 00:00:00+00:00 False
2015-06-05 00:00:00+00:00 False
2015-06-08 00:00:00+00:00 False
2015-06-09 00:00:00+00:00 False
2015-06-10 00:00:00+00:00 False
2015-06-11 00:00:00+00:00 False
2015-06-12 00:00:00+00:00 False
2015-06-15 00:00:00+00:00 False
,363,210
나이 :
는data.xs(farts[1], level = 1).any(axis = 1) <= 0
은 컴퓨터 :
date
2015-05-21 00:00:00+00:00 True
2015-05-22 00:00:00+00:00 True
2015-05-26 00:00:00+00:00 False
2015-05-27 00:00:00+00:00 False
2015-05-28 00:00:00+00:00 False
2015-05-29 00:00:00+00:00 False
2015-06-01 00:00:00+00:00 False
2015-06-02 00:00:00+00:00 False
2015-06-03 00:00:00+00:00 False
2015-06-04 00:00:00+00:00 False
2015-06-05 00:00:00+00:00 False
2015-06-08 00:00:00+00:00 False
2015-06-09 00:00:00+00:00 False
2015-06-10 00:00:00+00:00 False
2015-06-11 00:00:00+00:00 False
2015-06-12 00:00:00+00:00 False
2015-06-15 00:00:00+00:00 False
나 :
는data.xs(farts[1], level = 1).any(axis = 0) <= 0
은 컴퓨터 :
integrated_daily_difference False
dtype: bool
그런 다음 내 컴퓨터는 미친 듯이 웃기 시작 나와 머리가 폭발했습니다 ...
그러나 더 심각하게, 여기서 무슨 일이 일어나고 있습니까? 내 목표는 단일 열 데이터 프레임의 모든 값 또는 모든 값이 조건을 충족하는지 확인하고 True 또는 False 값을 반환하는 것입니다. 나는 어떤 것을 제대로 사용하지 않는 것 같아서 도움을 구하고있다.
모든 의견을 환영합니다. 미리 감사드립니다.
이것은 매우 도움이됩니다. 고맙습니다! 실제로 더 깊이 들어가서 다음을 시도했습니다 : mylist = [1,2,3,4,0, -1] print 'test 1 :', 모두 (mylist)> -1 print 'test 2 :', 모두 (i> -1 for mylist) Test 1이 True로 표시되고 Test 2가 False로 인쇄됩니다. 첫 번째 경우는 True (1)와 False (0) 두 가지 모두에 해당한다고 가정하고 생성자에서 평가할 때 다르게 동작합니다. –
첫 번째 시도 인'all (mylist) '다시 조건은 없지만 목록에 0이 포함되어 있으므로 숫자가 0 인 False를 반환하므로 "> -1"로 테스트하면 True를 반환합니다. – hashcode55
그리고 두 번째 테스트에서는 부울리스트를 테스트하고 있습니다! i> -1은 -1에 대해 False를 반환합니다. 그러면 False가되며,> = -1이면 true가됩니다! 당신이 염두에 두어야 할 기본 개념 ..... "iterable의 어떤 요소라도 참이면 true를 돌려 준다." - any 및 "iterable의 모든 요소가 참인 경우 true"를 반환합니다. - 모두 – hashcode55