MINERVA/Python 2024. 1. 30. 16:56
반응형

Pandas를 사용하여 DataFrame에서 특정 키 값이 같은 행이 두 개 이상일 때, 날짜 또는 최근 업데이트된 행만 남기는 방법은 다음과 같이 할 수 있습니다

 

아래와 같이 기본데이타를 보면, 

data = {'key': ['A', 'B', 'A', 'B', 'C'],
        '날짜': ['2024-01-01', '2024-02-01', '2024-03-01', '2024-02-15', '2024-04-01'],
        '값': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
print(df)

 

   key       날짜   값
0   A  2024-01-01  10
1   B  2024-02-01  20
2   A  2024-03-01  30
3   B  2024-02-15  40
4   C  2024-04-01  50
 

 

Key가 같은 데이타가 불규칙하게 중복되어 있습니다.

해당 데이타에서 키값을 기준으로 마지막 데이타만 추출하는 방법은 아래와 같습니다.

result_df = df.sort_values(by='날짜').drop_duplicates('key', keep='last')
print(result_df)
  key   날짜        값
3   B  2024-02-15  40
2   A  2024-03-01  30
4   C  2024-04-01  50

 

이 코드에서 sort_values 함수는 '키'를 사용하여 오름 차순(default)으로 정열합니다.

그리고, drop_duplicates 함수를 사용하여 키 열을 기준으로 중복된 행을 제거하는데, 마지막행(keep='last'을 남기게 됩니다.

추가적으로, 중복행을 제거할때, 정렬된 행의 처음 행을 남길때는 keep='first' 로 설정하면 됩니다.

 

반응형
posted by choiwonwoo
: