반응형
목차
[파이썬] Pandas Dataframe 중복 값 찾기
판다스 Dataframe은 열과 행 (Column and row)로 구성되어 있습니다. 여기서 열 값 중에 같은 값들을 찾는 방법에 대해 알아 보겠습니다.
중복 값 찾기는 duplicate 함수로 구현 가능 합니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
dup_df = df.duplicated(subset=["name"])
print("\nduplicated Dataframe")
print(dup_df)
라인 14번: duplicated 함수를 사용해서 반복되는 값은 True라고 출력하게 합니다. subset으로 특정 열(Column)에만 적용했습니다. subset을 사용하지 않으면 전체 열에 적용 됩니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
duplicated Dataframe
0 False
1 True
2 False
3 False
4 False
5 True
dtype: bool
반응형
[파이썬] Pandas Dataframe 중복 값 갯수 세기(Counting)
duplicated().sum() 함수를 사용해서 true 값을 세어 줍니다(Count). False 개수를 세고 싶다면 duplicate 함수 앞에 ~ 를 붙여 주면 됩니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
dup_df = df.duplicated(subset=["name"])
print("\nduplicated Dataframe")
print(dup_df)
num_dup_df = dup_df.sum()
print("\nNumber of duplicated Dataframe")
print(num_dup_df)
라인18~20번: 앞서 중복값을 확인한 dup_df 값에 True를 Sum 함수로 카운트 해줍니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
duplicated Dataframe
0 False
1 True
2 False
3 False
4 False
5 True
dtype: bool
Number of duplicated Dataframe
2
[파이썬] Pandas Dataframe 중복 값 위치 찾기(Location)
위치 찾기는 loc 함수를 이용해서 찾습니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
loc_df = df.loc[df.duplicated(subset=["name"]), :]
print("\nlocation of Duplicated Dataframe")
print(loc_df)
14번 라인: loc 함수를 사용해서 위치를 찾아 줍니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
duplicated Dataframe
name math physics english
1 James 50 40 70
5 Adam 90 50 40
[파이썬] Pandas Dataframe 중복 값 삭제하기
dataframe 내장 함수 drop_duplicates()를 사용하면 반복되는 내용은 삭제 해줍니다.
예제 코드>>
import pandas as pd
import numpy as np
df = pd.DataFrame({
"name" : ["James", "James", "Kevin", "Adam", "David", "Adam"],
"math" : [90,50,50,30,100,90],
"physics" : [30,40,80,50,10,50],
"english" : [90,70,30,90,90,40]
})
print("Origial Dataframe")
print(df)
drop_df = df.drop_duplicates(subset=["name"], keep="first")
print("\nDrop Duplicated Dataframe")
print(drop_df)
14번 라인: 반복값 중에 첫번째 값을 유지하고 싶으면 keep="first"를 쓰고 마지막값을 유지하고 싶으면 keep="last"를 쓰고 반복되는 내용을 모두 삭제하려면 keep=False를 입력합니다.
결과>>
Origial Dataframe
name math physics english
0 James 90 30 90
1 James 50 40 70
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
5 Adam 90 50 40
Drop Duplicated Dataframe
name math physics english
0 James 90 30 90
2 Kevin 50 80 30
3 Adam 30 50 90
4 David 100 10 90
반응형
'파이썬(Python) > pandas' 카테고리의 다른 글
[Python] Pandas CSV 파일 읽기 (에러 발생/해결) (0) | 2022.03.05 |
---|---|
[Python]Pandas Dataframe 데이터 불러오기, loc, iloc 차이, 필터(Filter) 처리 (0) | 2022.02.26 |
[Python] Pandas 여러가지 정렬방법(Multi Column, Index 제외 정렬 등) (0) | 2022.02.24 |
[Python]Pandas에서 CSV 파일 읽기 에러 해결 (0) | 2022.02.23 |
[Python] Pandas 이동평균 함수 사용법 (Rolling) (2) | 2021.11.10 |