List Comprehension은 조건문을 추가하여 더욱 유연하게 리스트를 생성할 수 있습니다. 이를 통해 데이터를 필터링하거나 가공하는 작업이 간결해집니다.
다음은 0부터 19까지의 숫자를 포함하는 리스트를 생성하는 기본 예제입니다:
python
코드 복사
[i for i in range(0, 20)]
[0, 1, 2, 3, ..., 19]리스트에서 특정 조건(예: 홀수)을 필터링하는 방법입니다:
기본 for 문
python
코드 복사
odd_number = []
for i in range(0, 20):
if i % 2 == 1:
odd_number.append(i)
odd_number
[1, 3, 5, 7, ..., 19]List Comprehension
python
코드 복사
[i for i in range(0, 20) if i % 2 == 1]
[1, 3, 5, 7, ..., 19]random 라이브러리를 활용해 30일간의 매출 데이터를 생성합니다:
python
코드 복사
import random as rd
sales = [rd.randint(1500, 4500) for i in range(0, 30)]
print(list(sales))
rd.randint(a, b): a와 b 사이의 임의의 정수를 반환합니다.매출 평균을 계산하고, 평균 이상인 매출 데이터를 필터링합니다:
python
코드 복사
# 매출 평균 계산
sales_avg = sum(sales) / len(sales)
# 평균을 초과하는 매출 데이터
[i for i in sales if i > sales_avg]
sales_avg: 매출 리스트의 평균값입니다.if-else 추가매출 데이터를 기준으로 조건부 출력을 추가합니다:
python
코드 복사
['매출 달성' if i > sales_avg else '목표 매출 미달' for i in sales]
if-else: 조건에 따라 다른 값을 반환합니다.['목표 매출 미달', '매출 달성', ...]List Comprehension 결과를 데이터프레임에 저장하여 시각적으로 정리합니다:
python
코드 복사
import pandas as pd
df = pd.DataFrame()
df['일별 판매액'] = sales
df['매출 목표 달성 여부'] = ['매출 달성' if i > sales_avg else '목표 매출 미달' for i in sales]
df.head()
df['일별 판매액']: 매출 데이터를 저장.df['매출 목표 달성 여부']: 조건에 따른 목표 달성 여부를 저장.df.head(): 데이터프레임의 상위 5개 행을 출력합니다.