문제점을 해결하기 위해 노력했지만 짧게 나타났습니다. 그것이 다른 곳에 있다면 알려주십시오.팬더를 사용하여 다른 두 열의 값을 기준으로 열의 값을 바꿉니다.
I는 다음과 같이 4 개의 열이있는 dataframe있다 :
'A' 'B' 'C' 'D'
cheese 5 grapes 7
grapes 7 cheese 8
steak 1 eggs 21
eggs 2 steak 1
'A'및 'B'의 값과 일치해야 'C'와 'D'의 항목 아니라 로우 단계; 예를 들어, "B"에 "치즈"가 "5"이면 "치즈"에는 'D'에 "8"을 넣을 수 없습니다. 불일치가있는 경우 'C'및 'D'값을 기본값으로 수정해야합니다. 이 경우 C : default 및 D : 0이되도록 "cheese"를 수정해야합니다. 계란과 포도와 동일합니다. 스테이크는 괜찮습니다. 'D'값 기반
'A' 'B' 'C' 'D'
cheese 5 grapes 7
grapes 7 default 0
steak 1 default 0
eggs 2 steak 1
내가 고유 한 값으로 목록에 'A'와 'B'를 변환하기 위해 노력하고 'C'를 대체하기 위해 노력하고 :
그래서 출력은 다음과 같아야합니다 목록에. stackoverflow에서 찾을 수있는 조건부 df.replace() 트릭을 모두 시도했지만 아무 것도 생각 나지 않았습니다.
제공하신 도움에 감사드립니다. 그것은``C`가 steak` 두 행이 가능한 열
입니까? 그렇다면 코드의 동작은 무엇입니까? –
@ ViníciusAguiar : 네, 열'C'는 여러 항목을 가질 수 있습니다. 포도, 스테이크, 달걀 등은 모두 여러 번 'C'로 여러 번 나타날 수 있으며 잠재적으로 여러 개의 'D'값으로 나타납니다. 데이터가 예기치 않게 더럽습니다. 'A \ B' 쌍은 고유합니다. 코드는'A \ B' 쌍과 일치하지 않는 모든'C/D' 쌍을 찾아서'\ default'로 수정해야합니다. – crimins