csv 파일이 있습니다. 다음과 같이 보입니다.
name,id,
AAA,1111,
BBB,2222,
CCC,3333,
DDD,2222,
열에 중복이 있는지 확인하고 싶습니다 id
. 그렇다면 중복을 찾으십시오. 이 경우 대답은 2222
입니다.
중복이 있는지 확인하는 코드가 있습니다. 여기있어;
import pandas as pd
csv_file = 'C:/test.csv'
df = pd.read_csv(csv_file)
df['id'].duplicated().any()
문제는 중복을 어떻게 찾을 수 있는가?
python 2.7과 panda를 사용하고 있습니다.
사용할 수 있다고 생각합니다 duplicated
( 기본값 keep
이기 때문에 생략 keep='first'
). 또는 값이 필요한 경우 tolist
:
print df['id'][df.duplicated(subset=['id'])]
3 2222
Name: id, dtype: int64
print df['id'][df.duplicated(subset=['id'])].tolist()
[2222]
다음을 확인할 수 있습니다 duplicated
.
print df.duplicated(subset=['id'], keep='first')
0 False
1 False
2 False
3 True
dtype: bool
print df.duplicated(subset=['id'], keep='last')
0 False
1 True
2 False
3 False
dtype: bool
print df.duplicated(subset=['id'], keep=False)
0 False
1 True
2 False
3 True
dtype: bool
중복 행이 필요한 경우 하위 집합을 사용하십시오.
print df[df.duplicated(subset=['id'], keep='first')]
name id
3 DDD 2222
print df[df.duplicated(subset=['id'], keep='last')]
name id
1 BBB 2222
print df[df.duplicated(subset=['id'], keep=False)]
name id
1 BBB 2222
3 DDD 2222
drop_duplicates
드롭에 사용 :
print df.drop_duplicates(subset=['id'], keep='first')
name id
0 AAA 1111
1 BBB 2222
2 CCC 3333
print df.drop_duplicates(subset=['id'], keep='last')
name id
0 AAA 1111
2 CCC 3333
3 DDD 2222
print df.drop_duplicates(subset=['id'], keep=False)
name id
0 AAA 1111
2 CCC 3333
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다