[pandas] 중복 제거 관련

18.10.02 17:41 작성 조회수 342

0

안녕하세요, 강의를 듣는 수강생입니다.

강의 잘 듣고 있습니다.

중복 제거 관련 질문이 있습니다.

결론적으로

  1. ep.1과 ep.2 열 데이터를 서로 비교하여 중복된 값을 제거하고
  2. ep.1과 ep.2 열 데이터를 서로 비교하여 제거된 중복된 데이터의 갯수를 알고 싶습니다.

'pandas 중복 제거' 라는 키워드로 검색해보아도

하나의 열을 기준으로 중복 데이터를 제거하는 방법만 나와있고,

다중 열을 기준으로 데이터를 제거하는 방법은 나와있지 않아 질문을 남깁니다.

답변 3

·

답변을 작성해보세요.

0

dorddo님의 프로필

dorddo

질문자

2018.10.09

해결할 것 같은데, 혹시 동일한 문제를 해결해야하시는 분은 참고하시기 바랍니다.

import numpy as np

#)numpy import

import pandas as pd

#)pandas import

df = pd.read_csv("~/fileName.csv")

#)csv 파일 load.

ep1 = df['ep1'].dropna()

#)불러온 csv파일 데이터프레임에서 ep1의 열의 값을 변수 ep1에 할당

ep2 = df['ep2'].dropna()

#)불러온 csv파일 데이터프레임에서 ep2의 열의 값을 변수 ep2에 할당

ep1_ep2 = pd.concat([ep1,ep2])

#)ep1과 ep2를 하나의 컬럼으로 결합하여 새로운 변수 ep1_ep2에 할당

ep1_ep2_1 = ep1_ep2.drop_duplicates()

#)ep1_ep2에 중복으로 겹치는 value를 제거한 후 새로운 변수 ep1_ep2_1에 할당

len(ep1_ep2) - len(ep1_ep2_1)

#)ep1_ep2의 value 갯수에서 ep1_ep_2_1 value 갯수를 빼줌 = ep1과 ep2 2개의 컬럼에서 중복되는 value의 갯수

0

dorddo님의 프로필

dorddo

질문자

2018.10.08

안녕하세요, 답변 감사합니다.

말씀주신 방법으로 새로운 컬럼을 만들어서 작업해보았습니다.

제가 의도한 것은 ep1과 ep2열의 전체 값을 비교하여 중복인 것을 제거하는 이었는데,

답변해주신대로 작업을 하니 ep1과 ep2의 각각의 row가 같은지 아닌지를 비교하여 새로운 컬럼에

Ture, False로 반환하였습니다.

ep1열 전체의 값과 ep2 열 전체의 값을 비교하여 중복을 제거하는 방법은 어떻게 해야 할까요?

0

열끼리 비교를 말하시는 거죠?

그럴경우

df["ep_1"] == df["ep__2"] == 1

이런식으로 새로운 컬럼을 만들어서 해당 컬럼이 TRUE인 값들만 제거해주는 방법이 있습니다.