작성
·
247
0
안녕하세요, 선생님.
평균거래액과 관련해 데이터를 확인하던 중 거래 기록과 지불 기록이 일치하지 않는 order_id가 있는 것 같아 아래와 같이 확인해보았습니다.
unique order_id 개수 확인
: orders와 payments의 'order_id'에서 유니크한 값의 개수를 확인해보니 각각 99,441개와 99,440개로 나왔습니다.
print(orders['order_id'].nunique(), payments['order_id'].nunique())
results: 99441 99440
가정) orders 기록에는 있으나 payments에서 누락된 데이터가 1개 있다
payments 누락 order_id 확인
missing_values = ~orders['order_id'].isin(payments['order_id'])
missing_values_in_order = orders['order_id'][missing_values]
missing_values_in_order
results: 30710 bfbd0f9bdef84302105ad712db648a6c
확인된 내용) 'bfbd0f9bdef84302105ad712db648a6c'는 oreders에는 있으나 payment에서는 누락된 'order_id'이다
order_id가 'bfbd0f9bdef84302105ad712db648a6c' 인 값의 세부사항 확인
확인된 내용) 'bfbd0f9bdef84302105ad712db648a6c' 거래는 '2016-09-15'의 order이고, order_item에서도 거래액을 확인할 수 있으나, payments 기록에서는 확인할 수 없다
Q1) 상기의 데이터 확인 과정이 적절한지 여쭤보고 싶습니다.
Q2) 이런 경우는 아마도 거래 기록은 있고, 거래 금액까지는 있으나 이후에 취소가 되었거나 등으로 payments에서 삭제된 데이터로 추측할 수 있을까요?
답변 1
1
안녕하세요. 답변 도우미입니다.
우선, 정말 잘 분석하신 것 같아요. 사실 데이터 불일치 문제는 실제 데이터 분석 작업에서 자주 마주치는 문제 중 하나이고요. 이 때 데이터의 일관성과 완결성을 점검하는 것은 매우 중요하며, 이를 통해 데이터에 대한 이해도를 높이고, 분석 오류도 줄일 수 있거든요. 추가로 말씀하신 문의에 대해서도 답변을 드리면,
Q1) 상기 과정은 매우 적절하며, EDA 나 pandas 기술도 잘 쓰신 것으로 이해가 됩니다.
Q2) 이 부분은 현 데이터만으로는 정확히 알기는 어려워요. 이런 부분은 실제 현업에서는 직접 시스템 개발자와 논의를 해서 왜 이런 현상이 있는지 논의하고, 필요하면 디버깅등을 통해, 파악해야하거든요. 현재는 말씀하신 수준으로 유추하는 것이 좋을 것 같고, 해당 데이터가 단지 매우 작은 수이기 때문에, 전체 분석 결과에 큰 지장을 초래하지는 않으니, 가볍게 인지만 하고 진행해도 될 것 같습니다.
감사합니다.