Re:제로부터 시작하는 갓생

[Python] 25/01/13 베이직 실습2 본문

Study/Sparta_task

[Python] 25/01/13 베이직 실습2

기븜 2025. 1. 13. 09:54
문제 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