Re:제로부터 시작하는 갓생
[Python] 25/01/13 베이직 실습2 본문
문제 1번
문자열을 입력 받아 각 단어가 몇 번 등장했는지 계산하는 word_frequency 함수를 작성하세요.
- 조건: 빈 문자열 인 경우 "입력한 문자열이 없습니다."를 반환해주세요.
- 힌트:
문자열을 split() 메서드로 나눌 수 있습니다.
딕셔너리를 사용해 단어 빈도를 계산하세요.
Skeleton code
def word_frequency(text): """ 여기에 코드를 작성하세요. """ # 테스트 1 text1 = "hello world hello python world" print(word_frequency(text1)) # 테스트 2 text2 = "" print(word_frequency(text2))
출력결과
''' {'hello': 2, 'world': 2, 'python': 1} 입력한 문자열이 없습니다. '''
* 정답
더보기
def word_frequency(text):
if not text:
return ("입력한 문자열이 없습니다.")
words = text.split()
frequency = {}
for word in words:
if word in frequency:
frequency[word] += 1
else:
frequency[word] = 1
return frequency
# 테스트 1
text1 = "hello world hello python world"
print(word_frequency(text1))
# 출력: {'hello': 2, 'world': 2, 'python': 1}
# 테스트 2
text2 = ""
print(word_frequency(text2))
# 출력: 입력한 문자열이 없습니다.
* 시도
더보기
빈도 계산하는 부분에서 특히 막힘..
def word_frequency(text):
# 1 조건: 문자열 체크
if not text:
return "입력한 문자열이 없습니다."
# 2 문자열 나누기
a = text.split()
# 3 딕셔너리 사용
b = {}
# 4 빈도 계산
for a in :
if a in b
else b
return b
문제 2번
Seaborn 라이브러리에서 제공하는 Penguins 데이터셋을 활용하여 다음을 수행하세요:
조건 1) 데이터 null값을 확인하고, 모든 칼럼에서 null값을 삭제하세요.
조건 2) 선택된 데이터에서 species, sex, bill_length_mm, bill_depth_mm 열만 추출하세요.
조건 3) species가 "Adelie"이면서 bill_length_mm이 40 이상이거나,
species가 "Chinstrap"이면서 bill_length_mm이 30 이하인 데이터를 선택하세요.
final_result 데이터 프레임에 저장하고, shape을 출력하세요.
Skeleton code
import seaborn as sns # Penguins 데이터셋 로드 penguins = sns.load_dataset("penguins") ''' 여기에 코드를 작성하세요 ''' print(final_result.shape) ## 츨력 결과 ''' (50, 4) '''
출력결과
import seaborn as sns # Penguins 데이터셋 로드 penguins = sns.load_dataset("penguins") ''' 여기에 코드를 작성하세요 ''' print(final_result.shape)
* 정답
더보기
import seaborn as sns
# Penguins 데이터셋 로드
penguins = sns.load_dataset("penguins")
# 조건1
display(penguins.isna().sum())
penguins.dropna(how = 'any', inplace = True)
# 조건2: 특정 열 선택-> 이중리스트 써야함 [[ ]]
result = penguins[["species", "sex", "bill_length_mm", "bill_depth_mm"]]
# 조건3
# 'species'가 'Adelie' 면서 'bill_length_mm'이 40 이상이거나
# 'species'가 'Chinstrap'면서 'bill_length_mm'이 30 이하인 데이터 선택
# -> 한번에 코드를 다쓰려고 하지말고 cond1, cond2로 나눠서 기재하기
cond1 = (result["species"] == "Adelie") & (result["bill_length_mm"] >= 40)
cond2 = (result["species"] == "Chinstrap") & (result["bill_length_mm"] <= 30)
final_result = result[cond1 | cond2]
print(final_result.shape) # (50, 4)
* 시도
더보기
시간도 없지만...기억도 안나... 특히 조건3.....
import seaborn as sns
# Penguins 데이터셋 로드
penguins = sns.load_dataset("penguins")
# 조건1
penguins = penguins.dropna()
# 조건2
select = penguins('species', 'sex', 'bill_length_mm', 'bill_depth_mm')
# 조건3
final_result = select('species') == 'Adelie'
select('')
print(final_result.shape)
배운점
특히 판다스...심각..
'Study > Sparta_task' 카테고리의 다른 글
[Python] 25/01/21 베이직 실습5 (0) | 2025.01.22 |
---|---|
[Python] 25/01/20 베이직 실습4 (0) | 2025.01.20 |
[Python] 25/01/15 베이직 실습3 (0) | 2025.01.15 |
[Python] 25/01/09 베이직 실습1 (1) | 2025.01.09 |