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' 로 설정하면 됩니다.
반응형