파이썬) 컬럼명 기준 로우값 변경

조회수 471회

데이터 전처리를 해야 하는데 큰 문제가 생겼습니다.

컬럼값은 정해졌는데 value값이 컬럼값과 일치하지 않아서 전처리를 못하고 있습니다.

컬럼값은 val값의 중복이 없는 모든 값이며, 값이 들어있는 value는 컬럼값과 일치하는 게 있지만,

col = [ '세이지오일','정제수', '사과추출물','빙하수(85%)','글리세린',부틸렌글라이콜', 
       '자몽껍질오일', '글루코노락톤']
val = [['정제수', '사과추출물', '글리세린',  nan, nan, nan],
       ['정제수', '사과추출물', '글리세린', nan, nan, nan],
       ['빙하수(85%)', '글리세린', '부틸렌글라이콜', nan, nan, nan]]

대충 이런 데이터가 있다고 할게요.

col값을 기준으로 val의 값을 정렬하려고 합니다. 보시면 아시겠지만 val은 2중 리스트입니다. 그리고 nan값이 있습니다.

이것을 데이터 프레임에 넣을 때 val값을 컬럼값과 동일한 것은 그대로 남겨두고 나머지는 0으로 처리하려고 합니다.

/*
정제수   사과추출물 글리세린    부틸렌글라이콜              <컬럼
정제수   사과추출물 글리세린    부틸렌글라이콜              <벨류값 
 0          0           0            0                    <컬럼과 일치하지 않는 값 
정제수      0           0            0                      <컬럼과 일치하는 벨류값 처리와 아닌 값 처리     
*/

이런 식으로 만들어야 합니다.

3일째 고민중인데 누구한테 물어도 아직 풀어낸 사람이 없습니다.

도와주세요.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • col 이 val 값 중 중복을 제외한 값들의 집합이라고 하셨는데 '부틸렌글라이콜'은 중복으로 들어간 값 아닌가요? 알 수 없는 사용자 2020.8.2 18:04
  • ['정제수', '사과추출물', '글리세린', nan, nan, nan] 이 결과 [정제수 사과추출물 글리세린 부틸렌글라이콜]에 대응되나요? 알 수 없는 사용자 2020.8.2 18:07
  • 아이고 예시에서 중복된 것을 발견 못했네요. 저건 제 실수지만 원래는 중복되면 안됩니다 알 수 없는 사용자 2020.8.2 18:19
  • 죄송합니다. 질문의 의도를 이해 못했어요. 대응이라는 표현을 어떻게 이해해야 하나요? 결과는 컬럼과 벨류의 각각의 값이 같으면 남겨두고 아니면 0으로 처리해야합니다. 알 수 없는 사용자 2020.8.2 18:25
  • 결과는 예시 데이터인 val과 무관한 다른 입력에 대한 결과인가요? 알 수 없는 사용자 2020.8.2 18:29
  • 예 맞습니다. 그냥 저런 식으로 결과가 나와야 한다는 예시입니다. 알 수 없는 사용자 2020.8.2 22:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)