DataFrame에서는 apply 함수를 사용해 원하는 조건의 원소를 추출, 제거할 수 있는데, List에서는 어떻게 해야 할까요? 이번 포스팅에서는 List에서 원하는 조건에 맞는 원소만을 추출, 제거하는 방법 2가지를 소개하겠습니다.
1. List Comprehension 사용
이 방법은 주어진 조건을 만족하는 요소만 새 리스트에 포함시키고, 그 리스트로 원래의 리스트를 대체합니다. 사용 시 주의할 점은 if 문을 for 뒤에 넣고 else를 넣지 않는다는 것입니다.
1) 조건 : 숫자 연산
number_list = [1, 2, 3, 4, 5]
number_list = [x for x in number_list if x < 3]
# number_list = [1, 2]
2) 조건 : 특정 문자 포함
word_list = ['apple','banana','candy','dog','egg']
word_list = [x for x in word_list if x.find('a') > -1]
# word_list = ['apple', 'banana', 'candy']
2. filter 함수 사용
'filter' 함수는 리스트의 각 요소에 대해 특정 조건을 적용하고, 그 조건을 만족하는 요소만을 필터링합니다.
1) 조건 : 숫자 연산
number_list = [1, 2, 3, 4, 5]
number_list = list(filter(lambda x: x < 3, number_list))
# number_list = [1, 2]
2) 조건 : 특정 문자 포함
word_list = ['apple','banana','candy','dog','egg']
word_list = list(filter(lambda x: x.find('a') > -1, word_list))
# word_list = ['apple', 'banana', 'candy']
두 방법 모두 원하는 원소를 추출, 제거할 수 있는 방법이니 앞서 말씀드린 것처럼 손에 쉽게 익혀지는 방법을 사용하시면 좋을 것 같습니다. 오늘도 읽어주셔서 감사합니다.