본문 바로가기

Pandas/실전

판다스 - 미국농무부 영양소 정보 : 각 영양소가 가장 많이 든 음식

반응형

https://steadiness-193.tistory.com/106

 

판다스 - 미국농무부 영양소 정보 (json 데이터 전처리2)

https://steadiness-193.tistory.com/105 판다스 - 미국농무부 영양소 정보 (json 데이터 전처리) json 라이브러리를 이용해 읽어오기 이 db의 길이는 6636이다. 단, json데이터의 특성상 그냥 6636개의 데이터가..

steadiness-193.tistory.com

 

위 포스팅에서 만든 ndata를 불러오자

 

 

 

 

[목표 : 비타민D2가 제일 많이 함유된 음식 찾기]

 

 

 

영양소를 기준으로 봐야하니

 

nutgroup과 nutrient로 그룹화해보자

 

 

 

잘 그룹핑되었다.

 

Vitamins에서 비타민 D2가 있는 것도 보인다.

 

 

이제 value를 기준으로 그룹별 제일 높은 값을 찾아야한다.

 

 

 

이를 위해선 그룹객체[컬럼명].idxmax()를 이용하자

 

 

 

 

위 주황색 박스의 해석은 이렇다.

 

Vitamins와 Vitamin D2의 그룹에서 value가 제일 높은 값의 인덱스는 127165다.

 

 

loc에 해당 인덱스를 이용해서 행을 추출하면 된다.

 

 

 

 

 

위 내용의 쉬운 설명 및 예시는 아래 포스팅을 참조

 

https://steadiness-193.tistory.com/104

 

판다스 - groupby : 멀티인덱스, idxmax 활용

데이터 만들기 위와 같은 데이터프레임이 있다. [목표 : Alpha, Key 멀티인덱스로 그룹화하여 Val 컬럼 기준 제일 높은 값의 인덱스를 이용해, 그 인덱스의 행만 추출] 우선 idxmax의 개념은 값이 제일

steadiness-193.tistory.com

 

 

 

 

함수 정의

 

 

get_maximum이라는 함수를 만든다.

 

그룹별 value컬럼의 최댓값인 인덱스를 추출해,

 

그룹별 그 인덱스의 행을 추출하는 것이다

 

 

 

 

 

 

 

결과는 다음과 같다.

 

 

 

 

 

 

 

필요한 컬럼은 value와 food뿐이니 다시 정리하면

 

 

 

원하는 데이터만 볼 수 있다.

 

 

 

 

 

 

마지막으로 찾고자 했던 비타민D2의 행만 xs 인덱서를 이용해 걸러내면 된다.

 

 

 

 

비타민 D2가 제일 많이 함유된 음식은 잎새버섯으로 확인할 수 있다.

 

 

반응형